$ _FILES在解析时仅上载第一个文件

时间:2013-07-25 02:50:59

标签: php loops multifile-uploader

好的,这可能看起来像是一个新手问题,但我有循环问题,我似乎无法解决。我只是想在我的第一个项目网站上传多个图像。

当我发布这个测试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();
}   
}
?>

计数代码工作正常,所以我认为这些{}或者我需要修复我的眼睛。任何帮助都会受到青睐。

1 个答案:

答案 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

的更多信息

希望这对您有所帮助。