Сообщение от eLDeR
|
поддерживает ли передачу файла jQuery.ajax
|
Да. Для этого обязательно указать параметры:
contentType: false
processData: false
Данные формы передать можно двумя способами. Первый это непосредственно указав саму форму объекту FormData:
data: new FormData(this) - где this, это форма.
Но такая передача имеет один минус, даже если не будет выбран файл для загрузки, тем не менее на сервере массив $_FILES будет указывать на загруженный с ошибкой файл - "файл не загружен". А так как ошибки загрузки нужно обязательно проверять (проверка наличия только имени файла не дает картины полной, ибо файл может быть загружен не полностью), то возникает неоднозначность, хотя можно проверять и наличие имени для выяснения.
Второй способ, это добавлять поля формы в объект FormData его методами в цикле/непосредственно, при этом поле file добавлять только в том случае, если его свойство value равно true (не пустое, файл выбран).