我使用while循环上传多个文件,以下是我的代码,move_uploaded_file总是失败,我收到消息“上传文件错误!”。我使用相同的代码(在没有$ counter的循环中的代码)在其他用例中上传单个文件,这很好用,但是当我在while循环中使用相同的代码时,我认为代码看起来很好,但在{ {1}} ...请告诉我这个问题是什么,我该如何解决?
move_uploaded_file
答案 0 :(得分:0)
最初重新排列文件以更好地循环它们。
https://gist.github.com/lukeoliff/5531772
可以使这个功能的基础更容易充实。
<?php
if (!empty($_FILES)) {
$_FILES = rearrangeFiles($_FILES);
}
?>
变成以下......
Array
(
[name] => Array
(
[0] => foo.txt
[1] => bar.txt
)
[type] => Array
(
[0] => text/plain
[1] => text/plain
)
[tmp_name] => Array
(
[0] => /tmp/phpYzdqkD
[1] => /tmp/phpeEwEWG
)
[error] => Array
(
[0] => 0
[1] => 0
)
[size] => Array
(
[0] => 123
[1] => 456
)
)
成....
Array
(
[0] => Array
(
[name] => foo.txt
[type] => text/plain
[tmp_name] => /tmp/phpYzdqkD
[error] => 0
[size] => 123
)
[1] => Array
(
[name] => bar.txt
[type] => text/plain
[tmp_name] => /tmp/phpeEwEWG
[error] => 0
[size] => 456
)
)
答案 1 :(得分:0)
请将功能移到while循环之外..然后再次运行。
答案 2 :(得分:0)
我找到了答案,我发布了这个,以便任何想要多文件上传解决方案的人都可以参考这个
我没有使用while循环,而是以这种方式将其更改为foreach循环
foreach($_FILES['album_pics']['error'] as $key => $error){
all code remains the same as above in while loop, except every reference to $counter will be replaced by $key
}