Flex FileReference upload () и .data ... это загружает весь файл в память? - PullRequest
1 голос
/ 13 июля 2010

Мне нужно выгрузить очень большой файл на свой сервер через приложение Flex, и я вижу, что функция загрузки файлов Flex Filereference (), кажется, в состоянии с этим справиться. Загружает ли метод upload () «поток» в сервлет или он отправляет весь ByteArray (насколько я понимаю, ByteArray будет иметь все содержимое файла, поэтому файл размером> 1 ГБ заполнит мою память). *

Я не нашел подтверждения ни того, ни другого. Кажется, исходный код flex.net.FileReference является частью flash, а не open-flex, поэтому я не могу взглянуть.

Кто-нибудь может подтвердить или отклонить использование всего массива byteArray при отправке содержимого файла на сервер?

Спасибо

Ответы [ 2 ]

1 голос
/ 14 июля 2010

При попытке загрузки больших файлов с помощью Flash загрузка файла в память не является для вас самой большой проблемой - сама загрузка весьма ненадежна.Согласно справке Flex Flash Player официально поддерживает загрузку файлов размером до 100 МБ.Мой опыт подтверждает, что загрузка больших файлов часто не удалась.Вы можете проверить этот компонент загрузки файлов для загрузки больших файлов в чинках и возобновления частичной загрузки.Однако это решение также должно полностью загрузить файл в память перед началом загрузки.

0 голосов
/ 13 июля 2010

Пример следующего HTTP-запроса POST отправляется из Flash Player в сценарий на стороне сервера, если не указаны параметры:

  POST /handler.cfm HTTP/1.1 
  Accept: text/*
  Content-Type: multipart/form-data; 
  boundary=----------Ij5ae0ae0KM7GI3KM7 
  User-Agent: Shockwave Flash 
  Host: www.example.com 
  Content-Length: 421 
  Connection: Keep-Alive 
  Cache-Control: no-cache

  ------------Ij5GI3GI3ei4GI3ei4KM7GI3KM7KM7
  Content-Disposition: form-data; name="Filename"

  MyFile.jpg
  ------------Ij5GI3GI3ei4GI3ei4KM7GI3KM7KM7
  Content-Disposition: form-data; name="Filedata"; filename="MyFile.jpg"
  Content-Type: application/octet-stream

  FileDataHere
  ------------Ij5GI3GI3ei4GI3ei4KM7GI3KM7KM7
  Content-Disposition: form-data; name="Upload"

  Submit Query
  ------------Ij5GI3GI3ei4GI3ei4KM7GI3KM7KM7--

Выглядит похожек почтовому запросу, сгенерированному файловым элементом управления html .Так что это не ByteArray, но браузер все равно должен загрузить файл в свою память перед отправкой;1 ГБ - это слишком много для загрузки любого файла - флеш или нет.

...