我有一个允许图像上传的html表单,但由于某种原因,现在上传的图像无法通过"is_uploaded_file"检查.
那么为什么上传失败了is_uploaded_file检查呢?
HTML:
<form enctype="multipart/form-data" id="RecipeAddForm" method="post"
action="/recipes/add" accept-charset="utf-8">
<!--- Omitted Markup -->
<input type="file" name="data[Recipe][image]" value="" id="RecipeImage" />
<!--- Omitted Markup -->
</form>
Run Code Online (Sandbox Code Playgroud)
PHP:
// returns false
echo is_uploaded_file($file['tmp_name'])?'true':'false';
Run Code Online (Sandbox Code Playgroud)
我在$ file或$ _FILES数组上进行了转储:
Array
(
[name] => add or remove.jpg
[type] => image/jpeg
[tmp_name] => E:\\xampp\\tmp\\phpB9CB.tmp
[error] => 0
[size] => 71869
)
Run Code Online (Sandbox Code Playgroud)
文件大小不是太大,错误是0.那么为什么它会失败is_uploaded_file检查?
我创建了一个用于多文件上传的表单。我在这里只报告所需的代码。
当我上传一个或多个文件时,数组
$_FILES['shopImage']
Run Code Online (Sandbox Code Playgroud)
有与一个或多个文件相关的日期,我可以通过var_dump()在下面放入 PHP 代码中看到它,我可以找到上传的文件。
然而,该函数
is_uploaded_file($_FILES['shopImage']['tmp_name'])
Run Code Online (Sandbox Code Playgroud)
始终返回 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>
Run Code Online (Sandbox Code Playgroud)
这是我用来测试它的 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;
}
}
?>
Run Code Online (Sandbox Code Playgroud)
这里是 var_dump()
array(5) { …Run Code Online (Sandbox Code Playgroud)