2012-11-29 70 views
1

我在我的网站上有两种形式,一种是上传单个文件,另一种是上传多个文件。这两个表单都上传到同一个目录,单个文件格式完美地工作。在努力优化代码,多文件上传表单,这样我不写出来的每个文件的处理单独我有以下代码:

foreach($_FILES['multi']['name'] as $uploaded_file){ 
    if(!move_uploaded_file($uploaded_file, "/var/www/uploads/".$uploaded_file."")){ 
     echo "Could not move File: ".$uploaded_file."<br />"; 
    }else{ 
     // Do additional processing 
    } 
} 

取而代之的文件移动到该目录后,是有效的,适用于单个文件上传表单,脚本错误并显示我的停止消息:提前

"Could not move File: <filename here>" 

被抓我的头最漂亮的,感谢任何见解和帮助!

+0

权限是写,因为单个文件上传表单写入到同一目录和没有问题。 – rws907

回答

1

你不针对上传的临时文件位置正确:

foreach ($_FILES['multi']['name'] as $idx => $uploaded_file) { 
    move_uploaded_file($_FILES['multi']['tmp_name'][$idx], "/var/www/uploads/$uploaded_file"); 
} 
+0

就是这样,谢谢! – rws907

0

尝试类似:

$count=0; 
foreach($_FILES['multi']['name'] as $uploaded_file) { 
    $tmp=$_FILES['file']['tmp_name'][$count]; 
    if(!move_uploaded_file($tmp, "/var/www/uploads/".$uploaded_file)){ 
    echo "Could not move File: ".$uploaded_file."<br />"; 
    }else{ 
    // Do additional processing 
    } 
    $count=$count + 1; 
} 
+0

同样的结果,它只是输出表单中每个文件的“无法移动文件”。 – rws907