这是我的代码:
if(isset($_FILES['productimage']['name'])!='')
{
echo $arraysize=sizeof($_FILES['productimage']['name']);
for($i=0;$i<$arraysize;$i++)
{
.....
}
在这里,我无法上传任何图片,但显示尺寸为1.
那么创建一个空文件呢?
确切的问题是什么?我该如何解决这个问题?
答案 0 :(得分:1)
当提交包含<input type=file>
的表单时,即使文件未上传,PHP也会填充$_FILES
数组。
这意味着将设置数组键(isset
将返回true)但它们将(或不会)包含有意义的值。检查文件是否实际上传的最佳方法是to check the error code associated with the file。
if (isset($_FILES["productimage"]) && $_FILES["productimage"]["error"] === UPLOAD_ERR_OK) {
// handle uploaded file
}
在上面的示例中添加了isset($_FILES["productimage"])
以确保设置了数组键;该文件是否已上传。
答案 1 :(得分:0)
您可以通过这种方式进行调试,以找出问题所在:
if ($_FILES["productimage"]["error"] > 0) {
echo "Error: " . $_FILES["productimage"]["error"] . "<br>";
} else {
echo "Upload: " . $_FILES["productimage"]["name"] . "<br>";
echo "Type: " . $_FILES["productimage"]["type"] . "<br>";
echo "Size: " . ($_FILES["productimage"]["size"] / 1024) . " kB<br>";
echo "Stored in: " . $_FILES["productimage"]["tmp_name"];
}