Вот пример кода функции jQuery AJAX для отправки множества фотографий через FormData в обработчик PHP:
function uploadPhotos() {
var formData = new FormData();
var photos = $('#fileInput')[0].files; // получение массива выбранных файлов
for (var i = 0; i < photos.length; i++) {
formData.append('photos[]', photos[i]); // добавление фотографий в FormData
}
$.ajax({
url: 'upload.php',
type: 'POST',
data: formData,
processData: false,
contentType: false,
success: function(response) {
console.log(response);
// Действия после успешной загрузки
},
error: function(xhr, status, error) {
console.log(xhr.responseText);
// Действия в случае ошибки
}
});
}
В приведенном коде предполагается, что у вас есть для выбора нескольких фотографий.
А вот пример кода PHP функции, принимающей массив фотографий и сохраняющей их на сервере:
<?php
if(isset($_FILES['photos'])) {
$photos = $_FILES['photos'];
$uploadedFiles = [];
foreach($photos['tmp_name'] as $key => $tmp_name) {
$file_name = $photos['name'][$key];
$file_tmp = $photos['tmp_name'][$key];
$file_type = $photos['type'][$key];
$file_size = $photos['size'][$key];
$new_file_name = md5(time() . $file_name) . '.' . pathinfo($file_name, PATHINFO_EXTENSION);
$destination = 'uploads/' . $new_file_name;
if(move_uploaded_file($file_tmp, $destination)) {
$uploadedFiles[] = $destination;
}
}
if(!empty($uploadedFiles)) {
// Действия после успешной загрузки
echo "Фотографии успешно загружены";
} else {
// Действия в случае ошибки
echo "Ошибка загрузки фотографий";
}
}
?>
В примере предполагается, что фотографии будут сохраняться в папку "uploads". Каждая фотография будет переименована в формате md5(время + имя файла).формат. Если загрузка прошла успешно, функция выведет "Фотографии успешно загружены", иначе "Ошибка загрузки фотографий".