【发布时间】:2013-07-11 21:17:48
【问题描述】:
我让这个厨房在我想要的地方工作了大约 65%。我想知道是否有人可以查看以下代码并告诉我如何将多张图片上传到我的画廊。
这里是代码。
简单的管理表单代码:
<form enctype="multipart/form-data" action="uploader.php" method="POST">
Category: <select class="text" name="dataType[]">
<option value="treeremoval" selected="selected">treeremoval</option>
<option value="treetrimming" >treetrimming</option>
<option value="treebracing" >treebracing</option>
<option value="stumpgrinding" >stumpgrinding</option>
<option value="firewood" >firewood</option>
<option value="cleanup" >cleanup</option>
</select>
<br /><br />
Caption: <input type="text" name="title[]">
<br /><br />
Image to upload: <input type="file" name="image[]" />
<br /><br />
Category: <select class="text" name="dataType[]">
<option value="treeremoval" selected="selected">treeremoval</option>
<option value="treetrimming" >treetrimming</option>
<option value="treebracing" >treebracing</option>
<option value="stumpgrinding" >stumpgrinding</option>
<option value="firewood" >firewood</option>
<option value="cleanup" >cleanup</option>
</select>
<br /><br />
Caption: <input type="text" name="title[]">
<br /><br />
Image to upload: <input type="file" name="image[]" />
<br /><br />
<input type="submit" value="Upload">
</form>
uploader.php 代码:
<?php
include($_SERVER['DOCUMENT_ROOT'] . "/connections/dbconnect.php");
$dataType = mysql_real_escape_string($_POST["dataType"][$i]);
$title = mysql_real_escape_string($_POST["title"][$i]);
$fileData = pathinfo(basename($_FILES["image"]["name"][$i]));
$fileName = uniqid() . '.' . $fileData['extension'][$i];
$target_path = ($_SERVER['DOCUMENT_ROOT'] . "/images/gallery/" . $fileName);
for($i=0;$i<count($_FILES["image"]["name"]);$i++){
$dataType = mysql_real_escape_string($_POST["dataType"][$i]); // get the dataType with the same key - $i
$title = mysql_real_escape_string($_POST["title"][$i]); // get the title with the same key - $i
$fileData = pathinfo(basename($_FILES["image"]["name"][$i]));
while(file_exists($target_path))
{
$fileName = uniqid() . '.' . $fileData['extension'];
$target_path = ($_SERVER['DOCUMENT_ROOT'] . "/images/gallery/" . $fileName);
}
if (move_uploaded_file($_FILES["image"]["tmp_name"][$i], $target_path))
{ // The file is in the images/gallery folder. Insert record into database by
// executing the following query:
$sql="INSERT INTO images (data_type, title, file_name)"."VALUES('$dataType','$title','$fileName')";
$retval = mysql_query($sql);
echo "The image {$_FILES['image']['name'][$i]} was successfully uploaded and added to the gallery<br />
<a href='index.php'>Add another image</a><br />";
}
else
{
echo "There was an error uploading the file {$_FILES['image']['name'][$i]}, please try again!<br />";
}
} // close your foreach
?>
我尝试复制表单代码 4 次,但它只会将 1 张图片上传到图库。
任何帮助将不胜感激。
谢谢!
【问题讨论】:
-
添加多个
<input type="file">,每个都有一个唯一的名称 -
你可以用一种相对简单的方式来设置它......我认为它在输入类型 =“文件”上,你把数据类型放在哪里......或者什么?然后你的 $_FILES 将是几个文件的数组。我们在学校做了这个,一个输入多个文件,但我们使用了一个教师模板,所以我忘记了。如果找不到,请通知我,我会搜索我的文件。
-
@Dagon 你能详细解释一下吗?抱歉,这种编码有点新意。
-
@Ariane 我喜欢您的解决方案,如果您能找到该文件,我将不胜感激。你可以发邮件给我 daugaard47@gmail.com
标签: php mysql multifile-uploader