Как загружать изображения асинхронно - PullRequest
4 голосов
/ 08 июля 2011

Я использую Ruby on Rails 3, развернутый на heroku. Теперь у меня отлично работает вложение нескольких изображений, используя скрепку и Amazon S3 для хранения. Но когда я отправляю форму, мне приходится ждать слишком долго. По этой причине я загружал изображения асинхронно, используя Ajax. Любой пример или совет? Спасибо!

ОБНОВЛЕНИЕ: Есть кое-что, чего я не понимаю. Когда вы заполняете форму сообщения (например) с вложением из нескольких изображений, сообщение не создается до тех пор, пока вы не отправите форму, тогда у нее нет идентификатора. Изображения принадлежат к Посту через post_id, затем: Как плагин Jquery Uploader или Uploadify может сохранять изображения асинхронно?

Ответы [ 2 ]

3 голосов
/ 08 июля 2011

Асинхронная загрузка файлов (с указанием хода выполнения) через XMLHttpRequest еще не поддерживается всеми браузерами, но лучший плагин jQuery, с которым мне доводилось сталкиваться, это jQuery-File-Upload (демо здесь ).Он работает с Chrome, Safari, Firefox, Opera и MSIE, хотя MSIE, к сожалению, пока не поддерживает индикацию прогресса.Загрузчик по умолчанию предназначен для всех типов файлов, но вы можете ограничить его изображениями.

Надеемся, что в будущем все браузеры смогут делать это через AJAX, хотя в настоящий момент вам придется использовать Flash дляполностью кросс-браузерная поддержка.

0 голосов
/ 18 июля 2015

Я сделал камень paperclip_upload . С этим камнем вы можете:

  1. Например, загрузить файл в конечную точку POST /api/uploads. Это вернет идентификатор как это: { "identifier": "9j3gp54p" }
  2. Вы можете повторить шаг 1 сколько хотите (используя ajax, как вы сказали в 2011 году: P)
  3. Вы можете отправить все upload_identifiers в более легком POST, например, на /api/attachments. Драгоценный камень сделает все остальное ...

Проверьте README

...