[316]
19 Апр 2011, 19:12

Ассихронная загрузка файлов

Сначала скажу, что загрузить файл на сервер, используя как таковую технологию AJAX, нельзя. Кто-то скажет, что пользуется какой-то ajax-библиотекой и всё загружается. Так вот, это эмуляция.

На сегодняшний день, мне известны 2 способа загрузить файл:

  1. Эмуляция с помощью iFrame.
  2. Flash- модуль который отправляет файл потоком.

Разговор будет об эмуляции через iFrame.

Технология проста. Создаём любым способом скрытый iFrame, указываем в атрибуте target тега form имя этого фрейма. Отправка файла будет происходить обычным способом, но перезагружаться будет не основная страница, а скрытый фрейм.

Для удобства, я написал на скорую руку скрипт на JavaScript, который при зажатии на кнопку отправки формы, создаёт скрытый фрем и добавляет некоторые атрибуты к тегу form.

После того как файл будет отправлен, произойдет перезагрузка фрейма, из которого можно достать ответ от сервера. Более подробно опиши походу дела.

Начало скрипта.

Вот "doc.XMLDocument;" это дело нужно тоже только в IE, свойство говорит что данные в XML виде, и к ним можно применять DOM функции.

Теперь HTML.

Как тут видно, в функцию sendForm нужно передать ссылку на саму форму и имя php-файла с путём, который должен получить, обработать и отправить сообщение во фрейм.

"

" - это элемент в котором будет отображаться сообщение о результате работы.

PHP скрипт.
Для эмуляции отправки даю такой скрипт:

"; echo ""; echo $xml; echo ""; ?>

Скрипт JS конечно требует оптимизации. Как не печально, но на "самотворчество" времени обычно не хватает.

#javascript

Комментарии (5)
bill
23 Апр 2011, 18:10
#

А про флешь загрузчик напишите?

grom
23 Апр 2011, 20:52
#

про него надо не написать, а сделать )

Oleg
19 Авг 2013, 07:50
#

зарегался для того что-бы задать один вопрос:

БИНАРНО БЛИН НЕ ОТПРАВЛЯЕТСЯ НЕ ?

Oleg
19 Авг 2013, 07:50
#

а и еще лох рега

grom
06 Дек 2014, 01:42
#

Статья 2011 года… Бинарно… для IE 6,7,8,9? И стоило регистрироваться?

Добавить комментарий

Войдите, чтобы написать о чем-нибудь...
Вход Регистрация
Web.onRails
Здесь вы можете спросить или написать обо всём, что касается Веб-разработки.
написать о чем-нибудь...
Метки: