开发者

What exactly does it mean when $_FILES is empty?

开发者 https://www.devze.com 2022-12-31 17:56 出处:网络
I am working on a PHP upload script and when testing my error checks, I attempted to upload a 17MB TIFF file. When I do this the $_FILES array is empty. The script works fine for what I need it to do,

I am working on a PHP upload script and when testing my error checks, I attempted to upload a 17MB TIFF file. When I do this the $_FILES array is empty. The script works fine for what I need it to do, which is to upload JPEG files. My solution is to test if $_FILES is empty or not before continuing with the upload script.

Can anybody explain why $_FILES is empt开发者_运维知识库y when a TIFF is attempted to be uploaded? Is my solution, to check if $_FILES is empty or not, an okay one?

Does this have something to do with settings in php.ini?

Just to clarify

I was checking that $_FILES was empty using the following:

if(empty($_FILES))
{
    die('$_FILES is empty.');
}


Yes, upload_max_filesize controls max upload size, which the TIFF file most likely exceeded. The default is 2M. You can test with:

echo ini_get("upload_max_filesize");

EDIT: Actually, the exact cause is more likely post_max_size, which is always >= upload_max_filesize: "If the size of post data is greater than post_max_size, the $_POST and $_FILES superglobals are empty."


You should check to see if $_FILES['file']['error'] is equal to 0. This indicates a "success".

If your files array is empty, it might be due to some other problem, like not including the enctype.

Try doing var_dump($_FILES) and viewing the contents...

EDIT: I know you can set the max filesize in the php.ini file, but I am not sure if that will give you an empty files array. I think you will just get an error.


As posted already, it's empty because if failed. Also check for a form element like this:

<input type="hidden" name="MAX_FILE_SIZE" value="-maxsizegoeshereinbytes-" />

To be extra sure (once you actually have an array - adding to the 'check the error key' post, btw) , you can also check the size

if( $_FILES['file']['size'] > 0 ) {

}
0

精彩评论

暂无评论...
验证码 换一张
取 消