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

时间:2014-08-27 21:33:47

标签: 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";
    }
  }
?>

我的最终目标是创建一个包含图库的动态页面创建器。因此,我正在寻找最佳方式为每个唯一页面上传多张照片,一次性无限量。我怎么能这样做?

提前致谢!

1 个答案:

答案 0 :(得分:0)

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

e.g。有些东西......

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

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