Показать сообщение отдельно
  #13 (permalink)  
Старый 05.08.2019, 13:12
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от eLDeR
поддерживает ли передачу файла jQuery.ajax
Да. Для этого обязательно указать параметры:

contentType: false
processData: false

Данные формы передать можно двумя способами. Первый это непосредственно указав саму форму объекту FormData:

data: new FormData(this) - где this, это форма.

Но такая передача имеет один минус, даже если не будет выбран файл для загрузки, тем не менее на сервере массив $_FILES будет указывать на загруженный с ошибкой файл - "файл не загружен". А так как ошибки загрузки нужно обязательно проверять (проверка наличия только имени файла не дает картины полной, ибо файл может быть загружен не полностью), то возникает неоднозначность, хотя можно проверять и наличие имени для выяснения.

Второй способ, это добавлять поля формы в объект FormData его методами в цикле/непосредственно, при этом поле file добавлять только в том случае, если его свойство value равно true (не пустое, файл выбран).
Ответить с цитированием