I'm uploading images using multiple instances of the following file input:
<input type="file" name="photos[]">
I've set the form properties like this:
<form action="?action=form" method="post" class="nice" enctype="multipart/form-data">
When I loop through the files array I can print out the multiple file names.
But as soon as I try to upload the files it only uploads the first file from the array.
Here is my PHP:
$uploadDir = '/uploads/';
$getCurrentTimeStamp = date('m-d-Y_h.i.s', time());
// Set the allowed file extensions
$fileTypes = array('jpg', 'jpeg', 'png', 'gif'); // Allowed file extensions
$theIds = $_POST["id"];
function findexts ($filename)
{
$filename = strtolower($filename) ;
$exts = split("[/\\.]", $filename) ;
$n = count($exts)-1;
$exts = $exts[$n];
return $exts;
}
//This applies the function to our file
$fileCount = 1;
foreach ($_FILES["photos"]["error"] as $key => $error) {
if ($error == UPLOAD_ERR_OK) {
$ext = findexts ($_FILES['photos']['name'][$key]) ;
if (!empty($_FILES)) {
$tempFile = $_FILES['photos']['tmp_name'][$key];
$uploadDir = $_SERVER['DOCUMENT_ROOT'] . $uploadDir;
$targetFile = $uploadDir . "equipment_photo_" .$theIds . "_".$fileCount."_". $getCurrentTimeStamp."." .$ext;
$theFileNameToStore = "equipment_photo_" .$theIds . "_".$fileCount."_". $getCurrentTimeStamp."." .$ext;
// Validate the filetype
$fileParts = pathinfo($_FILES['photos']['name'][$key]);
if (in_array(strtolower($fileParts['extension']), $fileTypes)) {
// Save the file
move_uploaded_file($tempFile,$targetFile);
echo $theFileNameToStore;
} else {
// The file type wasn't allowed
echo 'Invalid file type.';
}
}
}
$fileCount ++;
}
Any ideas why the multiple images will echo but the files won't upload?
$targetFile = $uploadDir . $theFileNameToStore$_FILESarray exists all uploads are done already. If you can loop through the file names you have a mistake in your processing. Could you post the output ofvar_dump( $_FILES );with more than one file selected?array(1) { ["photos"]=> array(5) { ["name"]=> array(2) { [0]=> string(14) "paper_swan.jpg" [1]=> string(16) "wooden_walls.jpg" } ["type"]=> array(2) { [0]=> string(10) "image/jpeg" [1]=> string(10) "image/jpeg" } ["tmp_name"]=> array(2) { [0]=> string(36) "/Applications/MAMP/tmp/php/phpyFPeIu" [1]=> string(36) "/Applications/MAMP/tmp/php/phpRH6N2I" } ["error"]=> array(2) { [0]=> int(0) [1]=> int(0) } ["size"]=> array(2) { [0]=> int(413005) [1]=> int(1007252) } } }