2

i want to upload multiple file upload.It is almost similar like simple file upload but we need to do some modification with html markup and php code. multiple attribute is needed to add on the html markup. Major web browsers like Firefox, Chrome, Safari and IE 9+ support this attribute. I am going to show you how to upload multiple file with PHP and basic HTML form but something missing it (multiple file is not upload)

i tried below code

HTML CODE

<html>
<head>

<?php

if (isset($message)) {
foreach ($message as $msg) {
printf(“<p class=’status’>%s</p></ br>\n”, $msg);
}
}
# success message
if($count !=0){
printf(“<p class=’status’>%d files added successfully!</p>\n”, $count);
}
?>
<title>Multiple File upload with PHP</title>
</head>
<body>
<form action=”” method=”post” enctype=”multipart/form-data”>
<input type=”file” id=”file” name=”files” multiple=”multiple” accept=”image/*” />
<input type=”submit” value=”Upload!” />
</form>
</body>
</html>

PHP SCRIPT

<?php
$valid_formats = array(“jpg”, “png”, “gif”, “zip”, “bmp”);
$max_file_size = 1024*5000; //100 kb
$path = “uploads/”; // Upload directory
$count = 0;

if(isset($_POST) and $_SERVER[‘REQUEST_METHOD’] == “POST”){
// Loop $_FILES to exeicute all files
foreach ($_FILES[‘files’][‘name’] as $f => $name) {
if ($_FILES[‘files’][‘error’][$f] == 4) {
continue; // Skip file if any error found
}
if ($_FILES[‘files’][‘error’][$f] == 0) {
if ($_FILES[‘files’][‘size’][$f] > $max_file_size) {
$message[] = “$name is too large!.”;
continue; // Skip large files
}
elseif( ! in_array(pathinfo($name, PATHINFO_EXTENSION), $valid_formats) ){
$message[] = “$name is not a valid format”;
continue; // Skip invalid file formats
}
else{ // No error found! Move uploaded files
if(move_uploaded_file($_FILES[“files”][“tmp_name”][$f], $path.$name))
$count++; // Number of successfully uploaded file
}
}
}
}

?>
maddy
  • 167
  • 2
  • 14

2 Answers2

1

Replace input file name like files[] not like files see following form example:

<form action="" method="post" enctype="multipart/form-data">
    <input type="file" id="file" name="files[]" multiple="multiple" accept="image/*" />
    <input type="submit" value="Upload!" />
</form>
Don't Panic
  • 9,803
  • 5
  • 25
  • 44
Samir Sheikh
  • 1,963
  • 1
  • 12
  • 27
1

Use files[] into <input> name attaribute

 <input type=”file” id=”file” name=”files[]” multiple=”multiple” accept=”image/*” />

We also need to give file input type file name with box breaks like files[] and need to add a property named multiple. Here accept is an optional property that used to allow users to upload only image files.

Kushan
  • 10,118
  • 3
  • 33
  • 40