PHP Multiple Files Upload With Validation
With PHP we can easily upload multiple files on the server. We have to use the same move_uploaded_file() function to upload the file. While uploading file we can also do the validation on the file like size, type, or file is exist or not.
HTML
<input type="file" name="files[]" multiple="multiple" />
First we have to do changes in the HTML script.
In the input file control we have to set the attribute named multiple with the value multiple. So now user will be able to select the multiple file and upload the multiple file. For e.g: multiple=”multiple”
Also we have to set modify the name of the input file control. We have to put the [] (bracket braces) into the input file control name. For e.g: name=”files[]”
Upload multiple files code:
HTML:
<form method="post" enctype="multipart/form-data" name="formUploadFile"> <label>Select files to upload:</label> <input type="file" name="files[]" multiple="multiple" /> <input type="submit" value="Upload File" name="btnSubmit"/> </form>
PHP:
foreach($_FILES["files"]["tmp_name"] as $key=>$tmp_name){ $temp = $_FILES["files"]["tmp_name"][$key]; $name = $_FILES["files"]["name"][$key]; if(empty($temp)) { break; } move_uploaded_file($temp,"UploadFolder/".$name); }
Upload multiple files with validation full code
HTML:
<form method="post" enctype="multipart/form-data" name="formUploadFile"> <label>Select file to upload:</label> <input type="file" name="files[]" multiple="multiple" /> <input type="submit" value="Upload File" name="btnSubmit"/> </form>
PHP:
$errors = array(); $uploadedFiles = array(); $extension = array("jpeg","jpg","png","gif"); $bytes = 1024; $KB = 1024; $totalBytes = $bytes * $KB; $UploadFolder = "UploadFolder"; $counter = 0; foreach($_FILES["files"]["tmp_name"] as $key=>$tmp_name){ $temp = $_FILES["files"]["tmp_name"][$key]; $name = $_FILES["files"]["name"][$key]; if(empty($temp)) { break; } $counter++; $UploadOk = true; if($_FILES["files"]["size"][$key] > $totalBytes) { $UploadOk = false; array_push($errors, $name." file size is larger than the 1 MB."); } $ext = pathinfo($name, PATHINFO_EXTENSION); if(in_array($ext, $extension) == false){ $UploadOk = false; array_push($errors, $name." is invalid file type."); } if(file_exists($UploadFolder."/".$name) == true){ $UploadOk = false; array_push($errors, $name." file is already exist."); } if($UploadOk == true){ move_uploaded_file($temp,$UploadFolder."/".$name); array_push($uploadedFiles, $name); } } if($counter>0){ if(count($errors)>0) { echo "<b>Errors:</b>"; echo "<br/><ul>"; foreach($errors as $error) { echo "<li>".$error."</li>"; } echo "</ul><br/>"; } if(count($uploadedFiles)>0){ echo "<b>Uploaded Files:</b>"; echo "<br/><ul>"; foreach($uploadedFiles as $fileName) { echo "<li>".$fileName."</li>"; } echo "</ul><br/>"; echo count($uploadedFiles)." file(s) are successfully uploaded."; } } else{ echo "Please, Select file(s) to upload."; }