我一直在为如何在不超载系统的情况下将多张照片上传到数据库中的日子一直在寻找答案,并决定最好的方法是将多张照片上传到新创建的目录(通过php创建)并将目录链接存储在数据库中。我正在处理的是一个基本上创建一个新的独特页面的表单。这个独特的页面有一组独特的照片,因此我需要在每次生成页面时生成一个文件夹,并将路径链接上载到数据库!我怎么做???PHP - 将多张照片上传到新创建的目录中
这里是我的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>
,这里是我的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>";
//Upload Files
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("uploads/" . $name)){
echo "<p>File Already Exists</p>";
} else {
//create new directory folder within /uploads
//move the files you upload into the new folder.
move_uploaded_file($_FILES["file"]["tmp_name"][$f], "upload/" . uniqid() . "_" . $name);
//send the file path to the database.
mysql_query("INSERT INTO test (idtest,testing) VALUES (','{$filepath}'");
}
}
} else {
$error = "Invalid file";
}
}
?>
,并为那些好奇,这里是我的数据库collumns:
|| idtest (AI, INT) || testing (varchart(50)) ||
任何帮助IMMENSELY赞赏!它一直在帮我!先谢谢你!
这是一个强制性的注释,提醒您在解决当前问题后放弃用'mysql'函数代替'mysqli'或'PDO'库。 – castis 2014-08-28 18:19:56
是的!我完全忘了!猜旧的习惯会死硬,呵呵..:P顺便说一下,mysqli_query = mysql_query,不过吧? – 2014-08-28 18:40:55
[mysqli库](http://php.net/manual/en/mysqli.quickstart.php)文档有关该主题的丰富知识。我不知道是否简单地改变函数名称会产生相同的输出。 – castis 2014-08-28 20:52:59