$(function() {
$('#form-data').on('submit', function(e){
e.preventDefault()
var form = $(this); // Предположу, что этот код выполняется в обработчике события 'submit' формы
var data = new FormData(); // Для отправки файлов понадобится объект FormData. Подробнее про него можно прочитать в документации - https://developer.mozilla.org/en-US/docs/Web/API/FormData
// Сбор данных из обычных полей
form.find(':input[name]').not('[type="file"]').each(function() {
var field = $(this);
data.append(field.attr('name'), field.val());
});
// Сбор данных о файле (будет немного отличаться для нескольких файлов)
var filesField = form.find('input[type="file"]');
var fileName = filesField.attr('name');
var file = filesField.prop('files')[0];
data.append(fileName, file) ;
// Отправка данных
var url = 'upload.php';
$.ajax({
url: url,
type: 'POST',
data: data,
contentType: false,
cache: false,
processData:false,
success: function(response) {
console.log(response)
}
});
})
});
<form id="form-data" action='#'>
<input type="file" name="test" multiple>
<input type="submit" name='submit' value="Send">
</form>
$httprequest = isset($_SERVER['HTTP_X_REQUESTED_WITH']) ? $_SERVER['HTTP_X_REQUESTED_WITH'] : null;
if($httprequest == 'XMLHttpRequest'){
if($_POST){
$name = '';
foreach($_POST as $value){
echo $value . PHP_EOL;
}
//echo $name;
}
else{
echo "массива \$_POST нет<br />";
}
if($_FILES){
foreach ($_FILES as $key => $value) {
//print_r($value);
move_uploaded_file($value['tmp_name'], 'files/' . $value['name']);
sleep(1);
}
}
else{
echo "массива \$_FILES нет";
}
}
else{
echo "No XMLHttpRequest";
}
$name = urldecode($name)
$name = htmlspecialchars(trim($_POST['name'])) ?? null;
$maxFileSize = 100 * 1024 * 1024; // 100 MB
$name = $_POST['name'] ?? null; // для php >= 7.0