Задать вопрос

Как загрузить файл на сервер через Ajax?

Есть функция, которая вызывается после выбора файла в input file и отправляет файл на сервер. Но прицепить файл к отправке не получается - отправляется пустой запрос.

var $fileCover = $('.editCover input[type=file]');

$fileCover.change(function(event) {  
  event.stopPropagation(); 
  event.preventDefault(); 

  formData = new FormData($fileCover[0].files);  // Код не добавляет файл в данные к отправке
  
  $.ajax({
            url: './CoverUpdate.php?uploadfiles',
            type: 'POST',
            data: formData,
            cache: false,
            dataType: 'json',
            processData: false, 
            contentType: false, 
            success: { // ответ сервера }
  });
  return false;
});
  • Вопрос задан
  • 764 просмотра
Подписаться 3 Оценить Комментировать
Ответ пользователя Петр К ответам на вопрос (4)
petermzg
@petermzg
Самый лучший программист
Для такой задачи лучше использовать XMLHttpRequest
Пример:
var form = av.closest('form')[0];
var xmlhttp = new XMLHttpRequest();
xmlhttp.open(form.method, form.action, true);
xmlhttp.onreadystatechange = function(){
            if (xmlhttp.readyState == 4){
                if (xmlhttp.status == 200){
                    xmlhttp.responseText;
                } else {
                    // empty
                }
            }
        };
xmlhttp.send(new FormData(form));
Ответ написан
Комментировать