2011-09-14 29 views
1

フラッシュから、私のJavaサーブレットに巨大な(〜4MB)ブロックのデータを送信する際に問題が発生しました。現在、URLVariablesを使用してデータを転送しています。これには限界があります(小さいデータブロックではうまくいくと思われます)。この制限を抑止する方法、または他の方法でデータをサーブレットに取得する方法これまでフラッシュから大量のデータを送信する問題

私のフラッシュコード:

var variables:URLVariables = new URLVariables(); 
variables.name = name_string; //Plenty of these small attributes 
variables.data = data_string; //And the huge BLOB 

var sendReq:URLRequest = new URLRequest("http://localhost:8080/recieve/"); 
sendReq.method = URLRequestMethod.POST; 
sendReq.data = variables; 

var sendLoader:URLLoader; 
sendLoader = new URLLoader(); 
sendLoader.addEventListener(Event.COMPLETE, Handler); 
sendLoader.dataFormat = URLLoaderDataFormat.VARIABLES; 
sendLoader.load(sendReq); 
+0

@@ John、これを使って文字列をアップロードするにはどうすればよいですか? – Skeen

+0

@@ John、答えを投稿して、data_stringが巨大なdata_stringであるこの例のコードを表示できますか? – Skeen

+0

@@ John、実際にはBitmapDataオブジェクトで、文字列にエンコードされています。送信側の問題を解決しやすくするには、エンコードがサーバー側で行われる可能性があります。 - SWFのローカルメモリだと思います。 – Skeen

答えて

0

をしようと提案します。

data_stringを指定されたサイズの部分文字列に分割し、これらを列挙し、これらをURLLoaderを使用してpart_idとともに転送するだけです。

サブストリングのコレクションは、サーバー側でpart_idsによって行われます。

0

まず、すべてのPOSTメソッドは、IEの周り2000+文字で失敗(AT-以上前〜8)。可能であれば、より小さな断片にあなたのデータを破壊し、そのように送信してみてくださいFlash/AS3 - is there a limit to the number of simultaneous URLLoader.load() requests?

を参照してください。

次に、URLLoaderには限界があります。これにより、最大の問題が解消されます。

+0

私は文字の制限は、サーバーで設定されていると思います。 –

+0

Amyの場合は、私のJavaサーブレットでこれをどのように変更するのですか? – Skeen

0

これはサーバー側の問題とよく似ています。 Java環境の設定を確認し、許容されるPOST/Requestの最大サイズを増やしてください。

データを複数の部分に分割して別々に送信するソリューションは、各部分がサーバー側の制限よりも小さいため、おそらく機能します。

関連する問題