PHP数组大小值错误

时间:2014-04-08 06:49:56

标签: php arrays file upload size

这是我的代码:

 if(isset($_FILES['productimage']['name'])!='') 
    {
     echo $arraysize=sizeof($_FILES['productimage']['name']);
   for($i=0;$i<$arraysize;$i++)
    {
      .....
    }

在这里,我无法上传任何图片,但显示尺寸为1.

那么创建一个空文件呢?

确切的问题是什么?我该如何解决这个问题?

2 个答案:

答案 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"];
}