Загрузить файл размером более 100 МБ во Flex - PullRequest
1 голос
/ 31 января 2011

Я хочу загрузить локальный файл размером более 100 МБ, а затем отправить его для удаления сервера Java.

Я получил эти возможные альтернативы:

  • Используйте класс FileReference Flex, который не рекомендуется для файлов размером более 100 МБ, и надеемся, что приложение не завершится сбоем.

  • Нарежьте данный файл на мелкие части, затем отправьте их. Для меня это кажется довольно суровым решением.

Вопрос: существует ли библиотека Flex, которая позволяет отправлять файлы размером более 100 МБ?

Если ответ НЕТ, существуют ли сторонние библиотеки для той же вещи?

Если нет, существуют ли какие-либо сторонние библиотеки для «нарезки» файлов и их асинхронной отправки на сервер?

РЕДАКТИРОВАТЬ: Если я нарезал файл на части, насколько они должны быть (для правильной проверки хеша)?

Ответы [ 3 ]

3 голосов
/ 31 января 2011

Прежде всего FileReference файла не позволяет разбивать файлы, он позволяет читать все данные одновременно, он не позволяет потоковую передачу. Загрузка файлов размером более 100 Мб работает хорошо без сторонней библиотеки, однако проблема возникает на стороне сервера, обычно серверу ASP.NET или Tomcat требуется больший тайм-аут для приема файлов большего размера.

Обычно при загрузке на сервер ASP.NET (также как и на сервере на основе Java) время выполнения сценария не учитывает время загрузки и, как правило, оно истекает до загрузки сценария. Если загрузка занимает более 10 минут, а время ожидания выполнения сценария меньше 10 минут, то независимо от того, какую библиотеку вы выберете на стороне клиента, вы никогда не сможете загружать файлы.

Вы можете выбрать silverlight, если хотите разбить файлы на более мелкие части, и вы можете рассмотреть хэш md5 с учетом встроенного в silverlight.

1 голос
/ 31 января 2011

Если flex fileReference не может открыть файлы размером более 100 МБ, вы можете открыть их с помощью HTML / Javascript через ExternalInterface.Получив файл, вы можете разбить его на куски и отправить его во Flex по частям (возможно, с помощью кодировки Base64) или загрузить напрямую из HTML / JS.Хотя я не знаю, может ли HTML открывать файлы размером более 100 МБ.

1 голос
/ 31 января 2011

HTTP не был предназначен для передачи таких больших файлов, поэтому я рекомендовал бы изучить альтернативные методы передачи файлов, такие как FTP.

Я знаю, что кто-то пытался создать FTP Flex клиент с использованием сокетов, но я подумал, что проект столкнулся с техническими ограничениями, которые не позволили ему быть полностью завершенным.

Если это вообще возможно, я настоятельно рекомендую переосмыслить требования вашего бизнеса.

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