Ruby on Rails: загрузка файлов с индикатором выполнения и проверка размера файла перед загрузкой - PullRequest
1 голос
/ 16 августа 2010

Существуют ли какие-либо гемы / плагины, которые позволяют гладкую реализацию?Бонус за разрешение нескольких загрузок =)

Ответы [ 3 ]

2 голосов
/ 17 августа 2010

Общий механизм выгрузки заключается в кодировании всего файла, подлежащего выгрузке, в объекте HTTP-запроса. Следовательно, к тому времени, когда серверное приложение даже видит запрос, файл уже загружен (хотя некоторые серверы позволяют оптимизировать процесс обработки на стороне сервера до того, как весь HTTP-запрос будет передан на сервер, но будет блокироваться, если приложению нужны данные из HTTP-запроса, который еще не был получен).

Существует несколько загрузчиков на основе Flash, которые позволяют загружать файлы в отдельных HTTP-запросах; они требуют, чтобы приложение сервера имело отдельную конечную точку, принимающую HTTP-запросы, специфичные для загрузки файлов. Некоторые даже реализуют индикаторы выполнения, несколько загрузок файлов, клиентские ограничения на тип контента и длину контента и многое другое. Случайно: YUI Uploader , Uploadify , FancyUpload .

1 голос
/ 17 августа 2010

Я использовал Uploadify, которая написана как плагин jQuery, в качестве загрузчика мультифайлов для моего приложения для ведения блогов под названием «Rehash» ( исходный код ), проверьте действие ProjectsController#new_upload.Мы использовали это в нескольких проектах и ​​продолжаем улучшать нашу реализацию.Сложная часть любого мультифайлового загрузчика Flash (например, Uploadify или FancyUpload) связана с защитой от подделки межсайтовых запросов Rails и файлами cookie.Вы хотите, чтобы запрос исходил от приложения, и вы можете аутентифицировать загрузку.Например, в Rehash я разрешаю загружать только администратору сайта, поэтому мне нужно проверить ключ сеанса и токен аутентификации.Джон Нунемейкер имеет хороший пост в блоге о Rails Tips о настройке Uploadify, описывающий текущую лучшую практику работы с Flash / сессиями как промежуточным программным обеспечением Rack, с использованием Paperclip для загрузки файлов, что является нашей же настройкой,В конце у вас есть хороший многофайловый загрузчик со стильными индикаторами выполнения, но на первый взгляд это хороший объем работы.

Uploadify также имеет опцию sizeLimit, проверьте документы.

0 голосов
/ 17 августа 2010

Я использую YUI uploader .Промышленная мощь, большое сообщество, книги и т. Д. Мне пришлось развернуть собственную интеграцию с Rails, но это было не сложно.

PS, посмотрите примеры виджетов, приведенные в правой части страницы.

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