Uploading multiple files
Multiple files can be uploaded using different
name
for input
.
It is also possible to upload multiple files simultaneously and
have the information organized automatically in arrays for you. To
do so, you need to use the same array submission syntax in the
HTML form as you do with multiple selects and checkboxes:
Приклад #1 Uploading multiple files
<form action="file-upload.php" method="post" enctype="multipart/form-data">
Send these files:<br />
<input name="userfile[]" type="file" /><br />
<input name="userfile[]" type="file" /><br />
<input type="submit" value="Send files" />
</form>
When the above form is submitted, the arrays
$_FILES['userfile'],
$_FILES['userfile']['name'], and
$_FILES['userfile']['size'] will be
initialized.
For instance, assume that the filenames
/home/test/review.html and
/home/test/xwp.out are submitted. In this
case, $_FILES['userfile']['name'][0]
would contain the value review.html, and
$_FILES['userfile']['name'][1] would
contain the value xwp.out. Similarly,
$_FILES['userfile']['size'][0] would
contain review.html's file size, and so forth.
$_FILES['userfile']['name'][0],
$_FILES['userfile']['tmp_name'][0],
$_FILES['userfile']['size'][0], and
$_FILES['userfile']['type'][0] are
also set.
Увага
The
max_file_uploads
configuration setting acts as a limit on the number of files that can be
uploaded in one request. You will need to ensure that your form does not
try to upload more files in one request than this limit.
Приклад #2 Uploading an entire directory
In HTML file upload fields, it is possible to upload an entire directory with the webkitdirectory
attribute.
This feature is supported in most modern browsers.
With the full_path
information, it is possible to store the relative paths,
or reconstruct the same directory in the server.
<form action="file-upload.php" method="post" enctype="multipart/form-data">
Send this directory:<br />
<input name="userfile[]" type="file" webkitdirectory multiple />
<input type="submit" value="Send files" />
</form>
Увага
The webkitdirectory
attribute is non-standard and is not on a standards track.
Do not use it on production sites facing the Web: it will not work for every user.
There may also be large incompatibilities between implementations and the behavior may change in the future.
PHP only parses the relative path information submitted by the browser/user-agent,
and passes that information to the $_FILES array.
There is no guarantee that the values in the full_path
array contains a real directory structure,
and the PHP application must not trust this information.