Решение для загрузки файлов RESTful в JavaScript - PullRequest
0 голосов
/ 08 марта 2012

Приношу свои извинения, если это неуместный вопрос:

Моя проблема

Я создаю (или пытаюсь создать) RESTful API для приложения, которое используетзагрузка файлов в основном для использования с клиентом JavaScript.Как многие из вас знают, не существует стандартного кросс-браузерного способа загрузки файлов с использованием Ajax (кроме метода iframe ).К сожалению, в моем приложении для загрузки файла требуется аутентификация, и поэтому нет способа использовать метод iframe, который потенциально не может нарушить работу пользовательского интерфейса.затем может быть сохранен в браузере. Это очень затрудняет выход из системы.

Мое решение

Итак, МОЕ решение - это кодировка base64, которая выглядит следующим образом:

  1. Использование iframe для отправки файла в мой скрипт (назовем его base64.php)
  2. Этот скрипт преобразует файл в base 64, а затем возвращает строку.
  3. Приложениеберет строку и отправляет ее вместо файла в мой API
  4. API берет строку base 64 и преобразует ее обратно в файл.
  5. Файл "загрузка" завершена

По сути, я использую метод iframe для публикации файла в сценарии, который принимает сценарий, кодирует его и возвращает строку. Затем я выполняю свой ajax-запрос как обычно, используя кодированный код Base64Нг, а не сам файл.

Мой вопрос

Мой вопрос: кто-нибудь видит какие-либо проблемы с этим решением?Есть ли способ лучше?Или я могу что-то сделать, чтобы улучшить его?

Спасибо!

1 Ответ

0 голосов
/ 07 сентября 2012

Большая проблема, которую я вижу, состоит в том, что ваш файл загружается дважды: сначала в base64.php, затем в AJAX - эффективно удваивает использование полосы пропускания и, следовательно, заставляет пользователя дважды ждать загрузки одного файла. Здесь есть решение HTML 5, если вам интересно: http://net.tutsplus.com/tutorials/javascript-ajax/uploading-files-with-ajax/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...