我已经为多文件上传创建了一个表单。 我在这里只报告了所需的代码。
当我上传一个或多个文件时,数组
$_FILES['shopImage']
具有与一个或多个文件相关的日期,
我可以通过var_dump()
在下面的PHP代码中看到它
我可以发现上传的文件。
然而,功能
is_uploaded_file($_FILES['shopImage']['tmp_name'])
总是返回FALSE。
请在此处生成$ _FILES数组的HTML代码:
<form method="POST" action="upload.php" enctype="multipart/form-data">
...
...
...
<div class="pics">
<input type="file" name="shopImage[]">
<input type="file" name="shopImage[]">
<input type="file" name="shopImage[]">
<input type="file" name="shopImage[]">
</div>
...
...
...
<input type="submit" name="submit" value="UPDATE"><input type="reset" value="RESET">
</form>
这里我用来测试它的PHP代码:
<?
require_once $_SERVER['DOCUMENT_ROOT'].'include/setup.php';
if (!empty($_POST['submit']) and $_POST['submit'] == "UPDATE") {
var_dump($_FILES['shopImage']);
if(is_uploaded_file($_FILES['shopImage']['tmp_name'])){
echo "TRUE";
exit;
} else {
echo "FALSE";
exit;
}
}
?>
这里的var_dump()
array(5) {
["name"]=>
array(10) {
[0]=>
string(11) "Logo.png"
[1]=>
string(0) ""
[2]=>
string(0) ""
[3]=>
string(0) ""
}
["type"]=>
array(10) {
[0]=>
string(9) "image/png"
[1]=>
string(0) ""
[2]=>
string(0) ""
[3]=>
string(0) ""
}
["tmp_name"]=>
array(10) {
[0]=>
string(14) "/tmp/php2TOmvR"
[1]=>
string(0) ""
[2]=>
string(0) ""
[3]=>
string(0) ""
}
["error"]=>
array(10) {
[0]=>
int(0)
[1]=>
int(4)
[2]=>
int(4)
[3]=>
int(4)
}
["size"]=>
array(10) {
[0]=>
int(21947)
[1]=>
int(0)
[2]=>
int(0)
[3]=>
int(0)
}
}
注意:我确实检查了一个非常相似的问题here,但所描述的条件与我的不一样。我还没有实现move_upload_file()
等......
你能帮我找一个解决方案吗?
提前多多感谢
答案 0 :(得分:3)
正如您从var_dump
$_FILES['shopImage']['tmp_name']
数组中看到的那样。所以你应该检查这个数组的元素,而不是数组本身。例如:
foreach ($_FILES['shopImage']['tmp_name'] as $tmp_name) {
if (is_uploaded_file($tmp_name)) {
echo 'Yes';
} else {
echo 'No';
}
}