1

Flex アプリケーションを介して非常に大きなファイルをサーバーにアップロードする必要がありますが、Flex Filereference upload() で処理できるようです。upload() メソッドは「ストリーム」をサーブレットにアップロードしますか、それとも ByteArray 全体を送信しますか?

どちらかの確認は見つかりませんでした。flex.net.FileReference のソース コードは、オープン ソースの flex ではなく、フラッシュの一部であるようです。

ファイルの内容をサーバーに送信するときに、byteArray 全体の使用を確認または拒否できるのは誰ですか?

ありがとう

4

2 に答える 2

1

Flash を使用して大きなファイルをアップロードしようとする場合、ファイルをメモリにロードすることは最大の関心事ではありません。アップロード自体はまったく信頼できません。Flex リファレンスによると、Flash Player は最大 100 MB のアップロード ファイル サイズを公式にサポートしています。私の経験では、大きなファイルのアップロードはしばしば失敗することが確認されています。チャンクで大きなファイルをアップロードし、部分的なアップロードを再開するには、このファイル アップロード コンポーネントを確認してください。ただし、このソリューションでは、アップロードを開始する前に、ファイルをメモリに完全にロードする必要もあります。

于 2010-07-14T06:44:47.733 に答える
0

次のサンプルHTTPPOSTリクエストは、パラメータが指定されていない場合、FlashPlayerからサーバー側スクリプトに送信されます。

  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コントロールによって生成されたpostリクエストに似ています。したがって、これはByteArrayではありませんが、それでもブラウザはファイルを送信する前にファイルをメモリにロードする必要があります。1GBは、ファイルのアップロードには多すぎます-フラッシュかどうか。

于 2010-07-13T06:36:15.083 に答える