好的,这可能看起来像是一个新手问题,但我有循环问题,我似乎无法解决。我只是想在我的第一个项目网站上传多个图像。
当我发布这个测试php页面时,它会上传我请求的所有文件 ;将我希望上传的所有图像上传到目标目录。
<?php
$files = $_FILES['fileField'];
for ($x = 0; $x < count($files['name']); $x++)
{
$name = $files['name'][$x];
$tmp_name = $files['tmp_name'][$x];
move_uploaded_file($tmp_name, "property_images/$property_name/" . $name);
header("location: property_list.php");
exit();
}
?>
但是当我尝试包含我的解析器时,虽然它进入了正确的目录,但只有第一个文件被上传
<?php
if(isset($_POST['property_name'])){
$property_name = mysql_real_escape_string($_POST['property_name']);
$district = mysql_real_escape_string($_POST['district']);
$address = mysql_real_escape_string($_POST['address']);
$property_type = mysql_real_escape_string($_POST['property_type']);
$sql = mysql_query("SELECT id FROM mydb WHERE property_name='$property_name' LIMIT 1");
$propertyMatch = mysql_num_rows($sql);
if($propertyMatch > 0)
{
echo 'Sorry, you tried to place a duplicate "Property Name" into the system, <a href="property_list.php">click here</a>';
exit();
}
$sql = mysql_query("INSERT INTO mydb (property_name, district, address, property_type) VALUES ('$property_name','$ district','$address','$property_type')")or die (mysql_error());
if (!file_exists("property_images/$property_name"))
{
mkdir("property_images/$property_name");
}
$files = $_FILES['fileField'];
for ($x = 0; $x < count($files['name']); $x++)
{
$name = $files['name'][$x];
$tmp_name = $files['tmp_name'][$x];
move_uploaded_file($tmp_name, "property_images/$property_name/" . $name);
header("location: property_list.php");
exit();
}
}
?>
计数代码工作正常,所以我认为这些{}或者我需要修复我的眼睛。任何帮助都会受到青睐。
答案 0 :(得分:0)
您需要添加到输入名称[]括号和属性“multiple
”
<form id = "upload_form" method="post" enctype="multipart/form-data" >
<input type="file" name="uploaded_file[]" multiple="true" id="uploaded_file" style="color:black" /><br/>
</form>
现在所有上传的文件都可以通过
获得$_FILES['uploaded_file']['name'][0]
$_FILES['uploaded_file']['name'][1]
and so on
http://www.php.net/manual/en/features.file-upload.multiple.php
的更多信息希望这对您有所帮助。