微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

php / mysql-多个文件上传未正确插入表中

这是我上传PHP文件一个片段.

上传完成后,文件上传到正确的文件夹(即:move_uploaded_file).

但是,它们在表中显示不正确(表中只有第一个文件正确).

我究竟做错了什么?

    $con = MysqLi_connect($theDb, $usr, $pass, "images");
    MysqLi_select_db($con, "images");

//Submit button work
if(isset($_POST['submit'])){
  for($i=0; $i<count($_FILES['file_img']['name']);$i++){
    $filetmp = $_FILES["file_img"]["tmp_name"][$i];
    $filename = $_FILES["file_img"]["name"][$i];
    $filetype = $_FILES["file_img"]["type"][$i];

    $selected = $_POST['tables'];

    //image type check
    if(substr($filetype, 6) == "jpeg"){

      $filepath = "categories/" . $selected . "/" . $filename; //insert in respective folders
      move_uploaded_file($filetmp,$filepath);

      $sql = "INSERT INTO `$selected` (img_name, img_path, img_type) VALUES ('$filename', '$filepath', '$filetype')";

    } 
    else{
      echo "Has to be an image!";
    }
  }
  $result = MysqLi_query($con, $sql);
}

更新:

<form action="upload.PHP" method="POST" enctype="multipart/form-data">
<input type="file" name="file_img[]" id="file" multiple/>
<input type="submit" name="submit" value="Upload" />

<?PHP
include '/var/db_file.PHP';

$con = MysqLi_connect($theDb, $usr, $pass, "images");
MysqLi_select_db($con, "images");

// Drop down menu
$dbname = "images";
$sql = "SHOW TABLES FROM $dbname";
$result = MysqLi_query($con, $sql);
$tableNames = array();

while ($row = MysqLi_fetch_row($result)) {
    $tableNames[] = $row[0];
}

echo '<br>';

echo '<select name="tables" id="tables">';
foreach ($tableNames as $name) {
    echo '<option value="' . $name . '">' . $name . '</option>';
}
echo '</select>';
// Drop down menu end

echo '<br>';

MysqLi_close($con);
?>

其余代码继续在第一个代码块中.两个代码块都包含在form标记

解决方法:

$result = MysqLi_query($con, $sql);

这应该在for循环内

所以您的第一个代码应该是这样的:

$con = MysqLi_connect($theDb, $usr, $pass, "images");
    MysqLi_select_db($con, "images");

//Submit button work
if(isset($_POST['submit'])){
  for($i=0; $i<count($_FILES['file_img']['name']);$i++){
    $filetmp = $_FILES["file_img"]["tmp_name"][$i];
    $filename = $_FILES["file_img"]["name"][$i];
    $filetype = $_FILES["file_img"]["type"][$i];

    $selected = $_POST['tables'];

    //image type check
    if(substr($filetype, 6) == "jpeg"){

      $filepath = "categories/" . $selected . "/" . $filename; //insert in respective folders
      move_uploaded_file($filetmp,$filepath);

      $sql = "INSERT INTO `$selected` (img_name, img_path, img_type) VALUES ('$filename', '$filepath', '$filetype')";
      $result = MysqLi_query($con, $sql);
    } 
    else{
      echo "Has to be an image!";
    }
  }

}

让我知道你是否还有其他问题

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐