Я просто царапаю голову и не понимаю, что здесь происходит. Этот код работал как в производстве, так и в моей среде разработчиков.FormData не добавляет данные
Here является ссылкой, я делаю то же самое.
var fileToUpload = $('#productsFile').prop('files')[0];
var formData = new FormData();
formData.append('file', fileToUpload);
formData.append('action', 'csvUpload');
formData.append('siteId', $('#siteId').val());
console.log($('#siteId').val());
console.log(fileToUpload);
console.log(formData);
Выход в консоли:
10
File { name: "H00447.PriceList.csv", lastModified: 1464960003935, lastModifiedDate: Date 2016-06-03T13:20:03.935Z, size: 14859917, type: "application/vnd.ms-excel" }
FormData { }
Объект создал, значения в порядке, так что может быть проблема? Протестировано с помощью Firefox Developer Edition.
EDIT
Вот код для передачи данных в AJAX:
$.ajax({
url: ajaxUrl, // point to server-side PHP script
dataType: 'text', // what to expect back from the PHP script, if anything
cache: false,
contentType: false,
processData: false,
data: formData,
type: 'post'
}).done(function (msg) {
if (parseInt(msg) !== 0) {
alert(msg);
} else {
location.reload();
}
}).fail(function (msg) {
alert('Error: ' + msg.statusText);
});
В ajax.php
я просто var_dump($_REQUEST);
и показывает мне пустой массив.
EDIT2
Я попробовал его на другой LOCALHOST среде, я добавил несколько случайных ключей и значений, и все было хорошо, даже в FF и Chrome.
Итак, я вернулся к этой проблеме и только что прокомментировал раздел fileToUpload
.
Остальные два значения были указаны в $_POST
. Если я добавлю файл, $_POST
будет пустым.
Что-то не так с файлом.
EDIT3
Нет, я просто проверял с небольшим файлом, что о 3-4Kb, и все в порядке. Мой рабочий файл - 14 Мб, я думаю, что это будет проблемой.
РЕШЕНИЕ
Вся эта вещь из-за размер_файла. Я ввел лимит на пост и максимальный размер файла в php.ini
и альта. Вещи - это работы. Спасибо за помощь.
Вы не можете самоанализом 'FormData', попробуйте отправить его на сервер и проверить, были ли отправлены данные. – jcubic
@Rudi 'FormData' - это встроенный объект. – jcubic
@jcubic Я сбросил '$ _REQUEST' в мой' ajax.php' пустой массив. – vaso123