Лучшая стратегия для загрузки нескольких файлов - PullRequest
2 голосов
/ 17 декабря 2011

У меня есть форма, к которой можно прикрепить один или несколько (больших) файлов.Я хочу добиться следующего:

  • Ход загрузки файла должен быть показан пользователю

  • Процесс загрузки может быть прерван пользователем по адресув любое время

  • Если после отправки данных в форме возникают ошибки с другими данными, файлы не должны запрашиваться повторно;другими словами, файлы загружаются только один раз, даже если форму можно повторно отправить несколько раз

  • Если файлы и данные формы публикуются отдельно и независимо через Ajax, загруженные, но неиспользованныефайлы должны автоматически очищаться

  • Соображения безопасности: например, если файлы отправляются отдельно, у злоумышленника не должно быть возможности перезаписать файлы на сервере, зная идентификатор сеанса или другоеинформация доступна в браузере

  • Требования к браузеру: последние версии Safari, Chrome и Firefox;IE9 желателен

  • Серверная часть: пожалуйста, не предлагайте сторонние фреймворки;решение должно быть настолько универсальным, чтобы оно могло позволить любому реализовать его на своем любимом языке - Python, Ruby, PHP, Perl и т. д. (и, вероятно, JavaScript)

Учитывая вышеизложенное,Каковы некоторые советы и рекомендации и рекомендации для реализации этой функциональности?

Ответы [ 3 ]

1 голос
/ 17 декабря 2011

swfupload довольно круто.Хорошо задокументировано и работает очень хорошо.http://swfupload.org/

0 голосов
/ 17 декабря 2011

Я нахожу это довольно классным, если вы хорошо используете jQuery - http://blueimp.github.com/jQuery-File-Upload/

0 голосов
/ 17 декабря 2011

Если ваши пользователи используют последние версии браузеров, вы можете использовать HTML5 доступ к файлам из JavaScript.

Вы можете посмотреть здесь для начала http://www.html5rocks.com/en/tutorials/file/dndfiles/

Также вы можете посмотреть мой плагин для ruby ​​на рельсах здесь (пока нет документов, но код JS довольно прост) http://github.com/Ximik/simple_attachments

...