File upload is very common requirement of many web sites. We may require to upload pictures online to websites. Image upload is very common requirement and many sites are using this to allow members or visitors to upload files. 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. 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: Support for multiple file uploads was added in PHP 3.0.10. HTML: <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.. When register_global is on, globals for uploaded files are also initialized. Each of these will be a numerically indexed array of the appropriate values for the submitted files. register_globals tells whether or not to register the EGPCS (Environment, GET, POST, Cookie, Server) variables as global variables. Let us see one more example. PHP: $max_no_img=5; // 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='image[]' 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 addimg.php file. The file addimg.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 upimage ) PHP: while(list($key,$value) = each($_FILES[image][name])) { if(!empty($value)) // this will check if any blank field is entered { $filename = $value; // filename stores the value $add = "upimage/$filename"; // upload directory path is set //echo $_FILES[image][type][$key]; // uncomment this line if you want to display the file type // echo "<br>"; // Display a line break copy($_FILES[image][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.
Hi friends,,,Excellent post,,,,I think its nice information of Creating a Multi-File Upload Script in PHP.....Thanks for the share valuable solution here, it will be very helpful for all people……….:crazy::crazy:.
Just wanted to say about this post here: I felt exactly like you did some time ago but keep sticking at coding it'll make sense soon trust me!