Comments 11
Спасибо, очень полезная статья, как раз недавно столкнулась с этой проблемой.
+1
Ага, удобно то, что на сервере получаешь сгруппированные данные. Особенно если файл-обрабочик ajax запросов является общим (выступает в роли контроллера-маршрутизатора). Тогда просто необходимо отделять служебные данные (для маршрутизации запроса) от массива пользовательских данных.
Респект за статью! Надеюсь многие возьмут ее себе на вооружение, а то нормального frontend+верстальщика на фрилансе днем с фонарем не сыскать.
Респект за статью! Надеюсь многие возьмут ее себе на вооружение, а то нормального frontend+верстальщика на фрилансе днем с фонарем не сыскать.
+1
UFO just landed and posted this here
>Главная проблема FormData заключается в Internet explorer (как всегда), а вернее, в его поддержке.
А вы пробовали искать полифил? Из статьи не очень понял, ак вы в итоге решили проблему с ИЕ.
А вы пробовали искать полифил? Из статьи не очень понял, ак вы в итоге решили проблему с ИЕ.
+2
Использовал только нативные способы без подключения дополнительных библиотек. С помощью полифила можно просто через for..of перебрать formdata и с помощью set менять данные как нам угодно, но это уже не так интересно. Проблема с ie в итоге обходится с помощью ручной сборки всех данных с формы, а не простым вызовом конструктора к текущей форме.
0
Сталкивался с ещё одной проблемой IE:
Файл отправлялся на сервер, условно говоря, вот так:
/**
* @param {Blob} file
*/
function sendFile(file) {
var XmlHttpObject = new XMLHttpRequest(),
form = new FormData();
form.append('file', file);
XmlHttpObject.send(form);
}
В результате запрос на бэкэнд приходил:
- В случае любых браузеров, кроме IE: с заголовком Content-Type: multipart/form-data и содержимым файла в соответствующем виде в теле запроса.
- В случае IE: с заголовком Content-Type: application/x-www-form-urlencoded (хотя тело запроса было как в случае multipart/form-data).
Это, в частности, препятствовало привычному использованию php-шного массива $_FILES, пришлось допиливать обёртку для парсинга тела запроса.
Не сталкивались с таким?
+1
Занимался я как-то такой задачей, вылилось в такой репозиторий.
+1
Кстати как выглядит отправка на Angular 2 ng2-file-upload
+1
Sign up to leave a comment.
Кроссбраузерная отправка формы с файлом или как переписать весь отправщик несколько раз после тестирования в IE