Я работаю над веб-приложением. Существует одно место, где пользователь может загружать файлы с помощью протокола HTTP. Существует выбор между классическим управлением HTML файлами и апплетами Java для загрузки файлов.
Классическая загрузка файла HTML невелика, потому что вы можете выбирать только один файл за раз, и довольно сложно получить индикацию прогресса во время фактической загрузки (я, наконец, получил его, используя таймер, обновляющий индикатор прогресса с данными выбирается с сервера с помощью вызова AJAX). Преимущество: он всегда работает.
С помощью апплета Java я могу сделать больше вещей: выбрать сразу несколько файлов (даже папку), сжать файлы, получить реальный индикатор выполнения, перетащить файлы на апплет и т.д.
> НО есть несколько недостатков:
- Это кошмар, чтобы заставить его работать на Mac Safari и Mac Firefox (спасибо Liveconnect).
- пользовательский интерфейс не является обычным пользовательским интерфейсом, и некоторые люди замечают, что
- апплет не так отзывчив, как должен (может быть, я виноват, но все выглядит нормально)
- есть ошибки в классе Java
UrlConnection
с HTTPS, поэтому я использую общий HTTP-клиент Apache для фактической загрузки HTTP. Это довольно большой пакет и замедляет загрузку файла .jar. - У обычного HTTP-клиента Apache иногда возникают проблемы с прокси-серверами
- время выполнения Java довольно велико.
Я поддерживал этот Java-апплет какое-то время, но теперь я устал от всех недостатков и рассматриваю возможность написания/покупки совершенно нового компонента для загрузки файлов тезисов.
Вопрос
Если у вас были следующие требования:
- загрузка нескольких файлов из браузера через HTTP или HTTPS
- сжатие файлов для уменьшения времени загрузки
- Загрузка должна работать на любой платформе с собственным пользовательским интерфейсом
- должен иметь возможность загружать огромные файлы, по крайней мере, до 2 гб
- у вас есть карт-бланш по технологии
Какую технологию /componenttent вы бы использовали?
Изменить:
- Drag'n'Drop файлов на компоненте будет большим плюсом.
- Похоже, что есть много проблем, связанных с ошибками с Flash Player (swfupload известные проблемы). Правильная поддержка Mac и загрузка через прокси с аутентификацией - это варианты, без которых я не могу обойтись. Вероятно, это исключает все варианты на основе Flash:-(.
- Я исключаю все параметры HTML/Javascript, потому что вы не можете выбирать более одного файла за раз с помощью классического элемента управления HTML. Это боль, чтобы щелкнуть n-раз кнопку "просмотреть", когда вы хотите выбрать несколько файлов в папке.