Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Загрузка без перезагрузки... (https://javascript.ru/forum/misc/32009-zagruzka-bez-perezagruzki.html)

OklickSpb 29.09.2012 17:42

Загрузка без перезагрузки...
 
Всем доброго времени суток.

Хочу спросить такую вещь.
Как сделать загрузку файлов(изображений на сервер), без перезагрузки страницы, пробовал через iframe, вопросов нет, все работает, но хотелось бы что то посвежее, трогать какие то "левые" библиотеки не хочется, так как нет уверенности что там все правильно, а менять код под себя долго и к тому же не могу похвастать большим опытом работы в JavaScript.
Хотелось бы что то на подобии загрузки,как на AVITO.RU.
Если кто знает, как там оно реализовано, то пожалуйста поделитесь.

Знаю, что мой вопрос полнимался не один раз... НО!

Хотелось бы, что бы вы поделились, как это делаете вы и как оно работает, какие минусы и плюсы и т.д.

Заранее благодарен!

P.S.
Есть ли смысл отказываться от при загрузке iframe и переходить на Ajax или же это не оправданно и не так то уж древне?

Serg_pnz 29.09.2012 18:56

Боюсь разочаровать, но Ajax для старых (только для старых?) браузеров всё равно создает iframe.
Так что используйте библиотеки, гемороя с кроссбраузерностью будет меньше.
Мне это плагин нравится http://malsup.com/jquery/form/#file-upload

OklickSpb 29.09.2012 19:18

А вы не подскажите, почему на некоторых форумах написано, что через ajax передавать изображения не безопасно. Вернее через плагины и библиотеки?

Serg_pnz 29.09.2012 21:40

Не знаю, что они там имели ввиду, но если на приемке не проверять файл на соответствие типу и формату (НЕ ТОЛЬКО ПО РАСШИРЕНИЮ!!!), то конечно, проблем не оберешься.
В частности я разбирал один из плагинов файлового менеджера (соль именно в ajax'е, а не поведени php), но там была проверка загружаемой картинки средствами php (gd2) на размер, что бы убедиться, что это действительно рисунок. А многие либо вообще не поставляют загрузчик на php, либо ограничиваются в нем копированием $_FILES без каких-то проверок на корректность загрузки. И таких большинство.
Второе - в обработчике на приемку можно забыть поставить проверку прав текущего пользователя на загрузку, третье - ооочень неплохо положить в папку с загруженными файлами htaccess, запрещающий выполнение php.
Так что если бездумно действовать, то накосячить можно как с плагинами и библиотеками, так и без них.

RAZVOR 29.09.2012 23:08

плагин jquery forms не работает с загрузкой файлов(отправляет но ответ не приходит), а вот ajax fileupload https://github.com/valums/file-uploader действительно работает сам им пользуюсь

Serg_pnz 30.09.2012 11:24

RAZVOR, ты про мою ссылку? Тогда ты не прав - всё работает!


Часовой пояс GMT +3, время: 08:42.