upload de múltiplos arquivos ajax com php
Ei, estou carregando arquivos para uma pasta escolhida e agora tenho a capacidade de selecionar e fazer upload de apenas um arquivo. Eu sei como lidar com vários arquivos em php, mas não sei como enviar todos os arquivos através do AJAX. Obrigado por qualquer ajuda que você pode oferecer
AJAX
function submitForm() {
console.log("submit event");
var fd = new FormData(document.getElementById("fileinfo"));
fd.append("label", "sound");
fd.append('label', document.getElementById('selected_folder').value);
$.ajax({
url: "upload.php",
type: "POST",
data: fd,
enctype: 'multipart/form-data',
processData: false, // tell jQuery not to process the data
contentType: false // tell jQuery not to set contentType
}).done(function( data ) {
console.log("PHP Output:");
console.log( data );
alert("upload success!")
});
return false;
}
PHP
<?php
if ($_POST["label"]) {
$subfolder = $_POST["label"];
}
$allowedExts = array("gif", "jpeg", "jpg", "png");
$temp = explode(".", $_FILES["file"]["name"]);
$extension = end($temp);
if ((($_FILES["file"]["type"] == "image/gif")
|| ($_FILES["file"]["type"] == "image/jpeg")
|| ($_FILES["file"]["type"] == "image/jpg")
|| ($_FILES["file"]["type"] == "image/pjpeg")
|| ($_FILES["file"]["type"] == "image/x-png")
|| ($_FILES["file"]["type"] == "image/png"))
&& ($_FILES["file"]["size"] < (10000*1024))
&& in_array($extension, $allowedExts)) {
if ($_FILES["file"]["error"] > 0) {
// echo "Return Code: " . $_FILES["file"]["error"] . "<br>";
} else {
$filename = $_FILES["file"]["name"];
echo "Upload: " . $_FILES["file"]["name"] . "<br>";
echo "Type: " . $_FILES["file"]["type"] . "<br>";
echo "Size: " . ($_FILES["file"]["size"] / 1024) . " kB<br>";
echo "Temp file: " . $_FILES["file"]["tmp_name"] . "<br>";
if (file_exists("uploaded/".$subfolder .'/'. $filename)) {
//already exists
} else {
move_uploaded_file($_FILES["file"]["tmp_name"],
"uploaded/".$subfolder .'/'. $filename);
// "Stored in: " . "uploaded/".$subfolder .'/'. $filename;
}
}
} else {
echo "Invalid file";
}
?>