Home > Article > Backend Development > Example analysis of PHP single file and multiple file uploads
This article mainly gives you a detailed analysis of the code and problem solutions for single file upload and multi-file upload in PHP. Let's study and refer to it together. I hope it can help everyone.
$_FILES When is an empty array?
When the form submission enctype is not equal to multipart/form-data in the php.ini configuration file, file_uploads = Off and the uploaded file size > the maximum upload size configured in the php.ini configuration file
As long as $_FILES is an empty array, the above problems may occur and must be fixed!
If you click the "Upload Button" immediately without selecting any file, $_FILES will be an array with elements. Each attribute in the element is an empty string, and the error attribute is 4
Single file upload
$_FILES data structure
array( 'filename' => array( 'name' => 'xxx.png', 'type' => 'image/png', 'size' => 2548863, 'tmp_name' => '/img/sdsdsd.png', 'error' => 0 ) )
Whether it is a single file or multiple file uploads, there will be 5 fixed attributes: name / size / type / tmp_name / error
Multiple file upload
Compared with single file upload, multi-file upload is much more complicated to process. The two forms of multi-file upload on the front end
//name相同 <form method="post" enctype="multipart/form-data"> <input type="file" name="wt[]"/> <input type="file" name="wt[]"/> <input type="submit" value="提交"/> </form> //name不同(简单点) <form method="post" enctype="multipart/form-data"> <input type="file" name="wt"/> <input type="file" name="mmt"/> <input type="submit" value="提交"/> </form>
The data structure corresponding to $_FILES on the back end Different
//name相同 array (size=1) 'wt' => array (size=5) 'name' => array (size=2) 0 => string '新建文本文档 (2).txt' (length=26) 1 => string '新建文本文档.txt' (length=22) 'type' => array (size=2) 0 => string 'text/plain' (length=10) 1 => string 'text/plain' (length=10) 'tmp_name' => array (size=2) 0 => string 'C:\Windows\php1D64.tmp' (length=22) 1 => string 'C:\Windows\php1D65.tmp' (length=22) 'error' => array (size=2) 0 => int 0 1 => int 0 'size' => array (size=2) 0 => int 0 1 => int 1820 //name不同(简单点) array (size=2) 'wt' => array (size=5) 'name' => string '新建文本文档 (2).txt' (length=26) 'type' => string 'text/plain' (length=10) 'tmp_name' => string 'C:\Windows\php39C7.tmp' (length=22) 'error' => int 0 'size' => int 0 'mmt' => array (size=5) 'name' => string '新建文本文档.txt' (length=22) 'type' => string 'text/plain' (length=10) 'tmp_name' => string 'C:\Windows\php39D8.tmp' (length=22) 'error' => int 0 'size' => int 1820
Field Error Purpose
Value: 1 The uploaded file exceeds the value limited by the upload_max_filesize option in php.ini.
Value: 2 The size of the uploaded file exceeds the value specified by the MAX_FILE_SIZE option in the HTML form.
Value: 3 The file was only partially uploaded.
Value: 4 No files were uploaded. Value: 5 The upload file size is 0.
Related recommendations:
A PHP file upload class sharing_php instance
php implementation A method of uploading multiple files
Example explains how to implement common file upload classes in PHP
The above is the detailed content of Example analysis of PHP single file and multiple file uploads. For more information, please follow other related articles on the PHP Chinese website!