【问题标题】:Multiple Image Upload using PHP into MYSQL database使用 PHP 将多个图像上传到 MYSQL 数据库
【发布时间】:2015-01-01 22:00:08
【问题描述】:

我目前非常困惑为什么我无法将一组图像插入到我的数据库中。 到目前为止,我当前的多文件上传能够将图像上传到我的默认目录,并且只能将第一张图像存储到我的 SQL Server 数据库中,为什么会这样? foreach 命令不应该能够拆分我上传的所有多个文件并将它们分别存储到数据库中吗?请大家多多指教,谢谢!

HTML 代码

<form method="post" enctype="multipart/form-data"  action="">  
    <input type="file" name="files[]" id="files" multiple />  
    <br /><br />
    <button type="submit">Upload selected files</button>  

PHP 代码

foreach ($_FILES["files"]["error"] as $key => $error) {
        if ($error == UPLOAD_ERR_OK) {
            $name = $_FILES["files"]["name"][$key];
            move_uploaded_file($_FILES["files"]["tmp_name"][$key], "" . $_FILES['files']['name'][$key]);
            $sql = "INSERT INTO `test`(`image`) VALUES ('" . $name . "')";
            $result = mysqli_query($connection, $sql);
            echo "The file " . basename($_FILES['multiple_uploaded_files']['name']) . " has been uploaded";
        } else {
            echo "There was an error uploading the file, please try again!";
        }
    }

干杯, 正在学习的技术新手。

【问题讨论】:

  • 你是说所有上传的图片都被上传并移动到适当的位置,但只有第一个的名称被存储到数据库中?
  • 我已经在 localhost 上尝试过了,它应该可以工作,我在您的代码中没有看到任何错误。只有这一行:$_FILES['multiple_uploaded_files'] $_FILES 中没有这样的键。应该是:basename($_FILES['files']['name'][$key])
  • 使用mysqli 时,您应该使用参数化查询和bind_param 将用户数据添加到您的查询中。 不要使用字符串连接来完成此操作,因为您将创建严重的SQL injection bugs
  • 致:Shomz,回答你的问题,是的!我也不明白为什么要:lolka_bolka,是的,我也不明白为什么它不起作用,按理说它应该:)

标签: php html mysql image post


【解决方案1】:
try with this example code,

    $path = "imageuploads/";
     for($i=0; $i<count($_FILES['file']['name']); $i++){
     $extension = explode('.', basename( $_FILES['file']['name'][$i]));
     $path = $path . md5(uniqid()) . "." . $extension[count($extension)-1]; 

      if(move_uploaded_file($_FILES['file']['tmp_name'][$i], $path )) {
      //insert query 
         echo "uploaded successfully";
          } else{
        echo "Error in Upload";
       }
   }
Above code is not worked, please tell the scenario

【讨论】:

  • 您好 Saleem,感谢您的帮助。代码执行有问题,文件正在按代码移动到目录,问题1:文件名相互堆叠,文件1名称:123.jpg文件2名称:123.jpg456。 .jpg问题2:这次没有将文件夹中存储的文件插入数据库,感谢您的时间和精力。 :)
  • @Newbie 欢迎老兄!酷。
  • 嗨新手 抱歉在聊天室,请告诉您的问题
  • 在我刚刚发布的评论中出售它,谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-04-21
  • 2015-09-18
  • 2016-05-07
  • 1970-01-01
  • 2016-05-26
  • 2018-06-26
相关资源
最近更新 更多