|
|
|
PHP multiple file upload Script |
We will learn how to upload multiple files using
a single form. This is required if you are allowing members to upload more than
one file and you don't know how many files you allow them to upload. Say you
want up to 8 files any member of your site can upload. As your members upload
and delete files so at the time of displaying the form to allow them to upload
you would like to check the existing number of files they have and accordingly
display them upload fields to add files. Here will try that. Here
we will set one variable to the number of text fields to display and this value
can be controlled based on the requirement or can be set by a script. Here is
the code to display the form and please read the file upload tutorial on this
section.
$max_no_img=4; // Maximum number of images value to be set here
echo "<form method=post action=addimgck.php enctype='multipart/form-data'>"; echo "<table border='0' width='400' cellspacing='0' cellpadding='0'
align=center>"; for($i=1; $i<=$max_no_img; $i++){ echo "<tr><td>Images $i</td><td> <input type=file name='images[]' class='bginput'></td></tr>"; }
echo "<tr><td colspan=2 align=center><input type=submit
value='Add Image'></td></tr>"; echo "</form> </table>";
This part will display the form and the number of upload boxes as per set by the
variable. Now we will move to next part explaining how to handle the uploaded
file and how to know what are the fields uploaded by the user. We will be using
PHP Multidimensional array here. We will receive the field data in the
addimgck.php file. The file addimgck.php will use php
multidimensional array and we will use array display techniques to know the
input fields for file upload. Please ensure that write permission is given to
the directory where files are to be stored. ( Here the directory name is upimg )
while(list($key,$value) = each($_FILES[images][name])) { if(!empty($value)){ // this will check if any blank field is
entered $filename = $value; // filename stores the value
$filename=str_replace(" ","_",$filename);// Add _ inplace of blank space in file name, you can remove this line
$add = "upimg/$filename"; // upload directory path is
set //echo $_FILES[images][type][$key]; // uncomment this
line if you want to display the file type // echo "<br>";
// Display a line break copy($_FILES[images][tmp_name][$key], $add); //
upload the file to the server chmod("$add",0777);
// set permission to the file. } }
As this script allows more than one file to upload so this script is likely to take more time than normal execution time. So it is better to set a higher value to manage maximum script execution time for this script.
Download the ZIP file here php_multi_file_upload.zip
| |
|
|
|