/  3
 
Creating a Multi-File Upload Script in PHP
Frustrated with single-file upload scripts? Looking for an alternate route? Read as Jonathan shows ushow easy it really is to setup a multi-file upload script using PHP.As a PHP programmer I had run into a problem where a client needed a form to upload more than onefile at a time. So one night I sat down and spent an hour figuring out the best and easiest way to dothis. In this tutorial, the
for loop
is going to be your best friend.
Creating a Multi-File Upload Script in PHP -Script 1: Number of Upload Boxes Required
uploadForm1.php
<html><head><title># of Files to Upload</title><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"></head><body><form name="form1" method="post" action="uploadForm2.php"><p>Enter the amount of boxes you will need below. Max = 9.</p><p><input name="uploadNeed" type="text" id="uploadNeed" maxlength="1"></p><p><input type="submit" name="Submit" value="Submit"></p></form></body></html>
As you can see this first page is very basic. In my form I set the uploadNeed maxlength to 1. This waythe max upload boxes he or she can get is 9. You can increase or decrease this to satisfy your own project needs.
Creating a Multi-File Upload Script in PHP -Script 2: Creating the Dynamic Form
uploadForm2.php
Ok, this page will be doing one half of the work. We will be using the for loop to get this task done.
<html><head><title>Untitled Document</title><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"></head><body><form name="form1" enctype="multipart/form-data" method="post"action="processFiles.php">
 
<p><?// start of dynamic form$uploadNeed = $_POST['uploadNeed'];for($x=0;$x<$uploadNeed;$x++){?><input name="uploadFile<? echo $x;?>" type="file" id="uploadFile<? echo$x;?>"></p><?// end of for loop}?><p><input name="uploadNeed" type="hidden" value="<? echo $uploadNeed;?>"><input type="submit" name="Submit" value="Submit"></p></form></body></html>
In this page, all I did was create a simple HTML form with the value of the attribute "type" set to"file". Within the form I put a block of code to start the for loop. I set $x to 0 and I made it stop at thedesired need by setting $x to be less than $uploadNeed – the value specified by the user. I also echothe $uploadNeed into a hidden input field to be carried over to the last page.The key to making this all work however is the $x variable I am echoing right next to the uploadFilename. What this will do is append a number starting with 0 to the name. This in turn will make eachupload field’s name unique.
Creating a Multi-File Upload Script in PHP -Script 3: The Big Copy Bang Page
processFiles.php
Here is the last page to complete our multiple upload tasks.
<?$uploadNeed = $_POST['uploadNeed'];// start for loopfor($x=0;$x<$uploadNeed;$x++){$file_name = $_FILES['uploadFile'. $x]['name'];// strip file_name of slashes$file_name = stripslashes($file_name);$file_name = str_replace("'","",$file_name);$copy = copy($_FILES['uploadFile'. $x]['tmp_name'],$file_name);// check if successfully copiedif($copy){echo "$file_name | uploaded sucessfully!<br>";}else{echo "$file_name | could not be uploaded!<br>";}} // end of loop?>
The first thing we do in this page is grab the uploadNeed from uploadForm2.php. We setup our for loop in the same fashion as the last page. The difference here though is we get the $_FILES namewithin the for loop. I assign this to the local variable name $file_name.

Share & Embed

More from this user

Add a Comment

Characters: ...