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