我可以看到这个问题已经被问过一百万次了。我已经通过了许多回复,但似乎无法正确回答:-
我只是想上传多个文件。我确定表格是正确的。我遇到的问题是,如果我使用 foreach 循环,PHP 会循环 5 次(我猜 $_FILES 中的每个键都会循环一次)。
我读过你应该在 $_FILE['file_upload'] 数组中计算上传的文件,然后使用 for 循环,并在末尾包含一个索引,例如:-
$_FILES['file_upload']['name'][$1]
但是,当我尝试访问这些值时,我只会得到值的第一个字母(我想我明白为什么会这样)。
我唯一能想到的就是使用
for($i ; $i<$size ; $i++){...}
然后在其中嵌套一个 foreach 循环,但是,这似乎效率低下,为此我没有看到其他建议。
因此,如果有人能一劳永逸地纠正我,我将永远感激不尽。我的代码在这里:-
foreach ($_FILES['file_upload'] as $key => $value){
$tmp_file = $_FILES['file_upload']['tmp_name'];
$target_file = basename($_FILES['file_upload']['name']);
if(move_uploaded_file($tmp_file,$upload_location."/".$target_file)){
$message = "File uploaded successfully";
} else {
$error = $_FILES['file_upload']['error']; // get the error
$_SESSION['errors'][] = $error_msg[$error];// return the error that matches
}// end if
} // end for
所以只是为了澄清 - 上面的代码可以工作并上传图像,但是循环循环 5 次(我假设每个 $_FILES 属性一次),我收到 5 条错误消息。我希望这是有道理的。
非常感谢您的任何指点
菲尔