, поэтому мне трудно загружать несколько изображений через php, ajax и jquery.Я новичок в этом, и я надеюсь, что кто-то может помочь мне с этим.Я уже пытался прочитать много решений с соответствующими вопросами здесь, но я не могу заставить его работать, поэтому я должен спросить сейчас сам.
Вот HTML:
<input type="file" name="files[]" id="files" multiple="true" accept="image/*" >
<button class = "add">Add</button>
скрипт:
$('.add').click(function(){
var filedata = document.getElementsByName("files"),
formdata = false;
if (window.FormData) {
formdata = new FormData();
}
var i = 0, len = filedata.files.length, img, reader, file;
for (; i < len; i++) {
file = filedata.files[i];
if (window.FileReader) {
reader = new FileReader();
reader.onloadend = function(e) {
showUploadedItem(e.target.result, file.fileName);
};
reader.readAsDataURL(file);
}
if (formdata) {
formdata.append("files", file);
}
}
if (formdata) {
$.ajax({
url: "http://localhost/try/new.php",
type: "POST",
data: formdata,
processData: false,
contentType: false,
success: function(res) {
alert('success');
},
error: function(res) {
alert('fail');
}
});
}else{ alert('success'); }
});
, а затем php
<?php
include_once 'dbConfig.php';
$id= $_SESSION['id'];
$targetDir = "uploads/";
$allowTypes = array('jpg','png','jpeg','gif');
$statusMsg = $errorMsg = $insertValuesSQL = $errorUpload = $errorUploadType = '';
if(!empty(array_filter($_FILES['files']['name']))){
foreach($_FILES['files']['name'] as $key=>$val){
$fileName = basename($_FILES['files']['name'][$key]);
$targetFilePath = $targetDir . $fileName;
$fileType = pathinfo($targetFilePath,PATHINFO_EXTENSION);
if(in_array($fileType, $allowTypes)){
if(move_uploaded_file($_FILES["files"]["tmp_name"][$key], $targetFilePath)){
$insertValuesSQL .= "('".$id."','".$fileName."', NOW()),";
}else{
$errorUpload .= $_FILES['files']['name'][$key].', ';
}
}else{
$errorUploadType .= $_FILES['files']['name'][$key].', ';
}
}
}
?>