AJAX-отправка файлов на сервер
Недавно столкнулся с проблемой закачки картинок AJAX’ом. Перепробовал массу способов. Самым лучшим оказался SWFupload. Из названия можно понять, что отправка файлов на сервер происходит с помощью Flash и JavaScript. Если клиент не поддерживает эти технологии, то ничто не мешает показывать ему input type file.
Из достоинств SWFupload
- Работает во всех адекватных браузерах.
- Имеет гибкий и хорошо документированный API.
- Позволяет задавать маски для разрешенных файлов (*.jpg).
- В диалоговом окне можно выбирать несколько файлов.
Можно динамически создавать iFrame за пределами области видимости (left и top меньше нуля), в него переносить инпут файла, а вместо него, генерить новый такой-же. И сабмитить этот фрейм, у которого на onload будет стоять событие, которое вернёт содержимое которое получил фрейм с сервера. Проблема данного способа заключается в том, что приходится оригинальный инпут переносить в фрейм, в котором он и теряется в результате отправки. а новый инпут остаётся незаполненным…
Тоже вариант.