【问题标题】:Uploading multiple files to mySQL then adding to Session将多个文件上传到 mySQL 然后添加到 Session
【发布时间】:2014-05-25 14:25:06
【问题描述】:

好的,解释一下我想要实现的目标,我希望用户能够在没有多个文件输入字段的情况下进行多文件上传(特别是图像),所以我在我的页面中使用了<input type="file" multiple="multiple" name="files[]"> .

以下是我的 PHP:

session_start();
include('connect.php');

// Connect to server and select databse.
mysql_connect("$host", "$username", "$password")or die("cannot connect"); 
mysql_select_db("$db_name")or die("cannot select DB");
$tbl_name="Pictures"; // Table name 

if(isset($_POST['submit'])) {
    if(isset($_FILES['files'])){
    $errors= array();   
    $files = array();

    for($i=0; $i<count($_FILES['files']['name']); $i++) {
        $tmpFilePath = $_FILES['files']['tmp_name'][$i];
        $file_name = $i.$_FILES['files']['name'][$i];
        $file_size =$_FILES['files']['size'][$i];
        $file_tmp =$_FILES['files']['tmp_name'][$i];
        $file_type=$_FILES['files']['type'][$i];    

        $desired_dir="images";
        $random_digit=rand(0000,9999);

        if ($tmpFilePath != ""){
            $newFilePath = "images/" . $random_digit . $_FILES['files']['name'][$i];
        }

        if($file_size > 2097152){
            $errors[]='File size must be less than 2 MB';
        } else {
            move_uploaded_file($tmpFilePath, $newFilePath);
        }

        $files = array($newFilePath);
        $_SESSION['files'] = $files;
    }
    }
}

所以目前正在做的是将文件添加到我工作正常的目录中,我已经这样做了,以便在文件之前有一个随机数以避免重复,因为会上传很多文件。它可以很好地上传多个文件,但是我接下来要做的是转到下一页,该页面将根据已上传的文件数量打印出许多文本输入字段,从而允许用户为每个文件添加标题.然后,一旦提交,每个文件及其标题将被插入到 mySQL 数据库中。

我想到的最简单的方法是将每个 $newFilePath(这是每个图像的文件路径)上传到一个数组中。我尝试了这个并使用以下方法打印数组:

foreach($files as $f) {
echo $f . '<br>';
}

这只是提出了第一个上传的文件,而不是全部。然后我很想将数组添加到 $_SESSION 中,这样我就可以在另一页上使用它们,但是一旦我对它进行排序,就可以在一个页面上完成所有操作。有什么想法吗?

【问题讨论】:

    标签: php mysql arrays session


    【解决方案1】:
    $files = array($newFilePath);
    

    应该是

    $files[] = $newFilePath;
    

    您可以直接将数组添加到会话数据中:

    $_SESSION['files'] = $files;
    

    【讨论】:

      猜你喜欢
      • 2021-11-05
      • 2017-06-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-09-25
      • 1970-01-01
      • 1970-01-01
      • 2019-01-08
      相关资源
      最近更新 更多