Страницы

Поиск по вопросам

пятница, 10 января 2020 г.

Загрузка файлов через AJAX

#javascript #ajax #fileupload


Массив FILES не содержит никаких данных о файле.Что делаю не так?

$(document).ready(function(){ var form = $('#form'); var file = $('input[type="file"]'); var formData = new FormData(form[0]); file.change(function(){ $.ajax({ url : 'ajax.php', method : 'POST', data : formData, dataType : 'html', processData: false, contentType: false, success : function(){ } }); }); }); '; print_r($_FILES); echo '
'; ?>


Ответы

Ответ 1



Попробуйте
Остальное с виду всё верно. Если не поможет проверьте плагином firebug , что запрос действительно содержит файл. Ещё возможно на сервере отключен приём файлов - проверьте phpinfo() .

Ответ 2



Разобрался сам. $(document).ready(function(){ var form = $('#form'); var file = $('input[type="file"]'); file.change(function(){ var formData = new FormData(form.get(0)); $.ajax({ url : 'ajax.php', method : 'POST', data : formData, dataType : 'html', processData: false, contentType: false, success : function(){ } }); }); }); Array ( [avatar] => Array ( [name] => IMG_20160820_144534.jpg [type] => image/jpeg [tmp_name] => C:\XAMPP\tmp\php3FE6.tmp [error] => 0 [size] => 682981 ) )

Ответ 3



Попробуйте так, проверил у себя реквест уходит, PHP не могу проверить из-за отсутствия обработчика: $(document).ready(function(){ var form = $('#form'); var file = $('input[type="file"]'); var formData = new FormData(); formData.append('file', file.val()); file.change(function(){ $.ajax({ url : 'ajax.php', method : 'POST', data : formData, dataType : 'multipart/form-data', processData: false, contentType: false, success : function(){ } }); }); }); В PHP проверьте так: '; print($_FILES['file']); echo '
'; ?>

Комментариев нет:

Отправить комментарий