PHP - 将多张照片上传到数据库

标签 php html mysql forms upload

因此,我找到了一些可以完美地将文件上传到目录的代码,但是我已经努力了好几天,试图简单地一次将多张照片上传到数据库。我需要一些帮助来解决这个问题,因为我对所有这些教程都一无所知......

这是我的 HTML 代码:

<form method="post" action="test.php" enctype="multipart/form-data">
  <p>File:</p>
  <input type="file" name="file[]" id="file" >
  <input type="submit" value="Upload">
</form>

这是我的数据库信息(测试数据库):

|| idtest (AI INT) || nameTesting (varchart 50) || testing (longblob)

这是我到目前为止的 PHP:

<?php
  //Connect to DB
    $conn = mysql_connect ('localhost', 'root', 'root');

    if (!$conn){
      die("Could Not Connect to MySQL!");
    }
    if(!mysql_select_db("test")){
      die("Could Not Open Database:" . mysql_error());
    }
    echo "<p>Connected</p>";

  foreach ($_FILES['file']['name'] as $f => $name) {
    $allowedExts = array("gif", "jpeg", "jpg", "png");
    $temp = explode(".", $name);
    $extension = end($temp);

    if ((($_FILES["file"]["type"][$f] == "image/gif")
    || ($_FILES["file"]["type"][$f] == "image/jpeg")
    || ($_FILES["file"]["type"][$f] == "image/jpg")
    || ($_FILES["file"]["type"][$f] == "image/png"))
    && ($_FILES["file"]["size"][$f] < 2000000)
    && in_array($extension, $allowedExts))
    {
      if ($_FILES["file"]["error"][$f] > 0){
        echo "Return Code: " . $_FILES["file"]["error"][$f] . "<br>";
      } else {
        if (file_exists("upload/" . $name)){
          echo "<p>File Already Exists</p>";
        } else {
          move_uploaded_file($_FILES["file"]["tmp_name"][$f], "upload/" . uniqid() . "_" . $name);
        }
      }
    } else {
      $error =  "Invalid file";
    }
  }
?>

我的最终目标是创建一个包含画廊的动态页面创建器。因此,我正在寻找一种最佳方法,为每个独特的页面一次性上传多张照片,数量不受限制。我怎样才能做到这一点?

提前致谢!

最佳答案

您是否想过可能做您正在做的事情,但不是将照片移动到数据库,而是将文件目录的链接存储在数据库中。 (这也将阻止您的数据库爆炸)

例如类似于 ..

 else 
 {
      move_uploaded_file($_FILES["file"]["tmp_name"][$f], "upload/" . uniqid() . "_" . $name);
  mysql_query("INSERT INTO filelocation (FID,filelocation) VALUES (DEFAULT,'{$filepath}');  
 }

然后您可以在需要时动态选择文件路径位置

关于PHP - 将多张照片上传到数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25537305/

相关文章:

php - 将日期时间结果偏移 3 小时

mysql - 索引适用的地方

php - 如何自动将小数转换为数字而不是 php 中的字符串?

javascript - Ajax 无法在 Codeigniter 的页面中工作

php - YouTube API:将视频上传到特定 channel

javascript - localStorage 不适用于谷歌浏览器

javascript - 单击按钮时使用 JavaScript 或 JQuery 向下滚动

php - 循环数据库中的特定记录并显示结果 - PHP

javascript - HTML 按钮打开 Youtube 视频

javascript - 自动完成两个字段没有任何反应