1

我在将一个巨大的(~4MB)数据块从闪存发送到我的 java servlet 时遇到问题,目前我正在使用 URLVariables 传输数据,但是这似乎有一个限制(因为它似乎可以工作,使用较小的数据块),我如何抑制这个限制,或者以任何其他方式,将我的数据获取到我的 servlet。

到目前为止我的闪存代码:

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);
4

4 回答 4

0

这听起来更像是服务器端的问题。检查您的 java 环境设置并增加允许的最大 POST/Request 大小。

将数据分成多个部分并单独发送的解决方案可能仅有效,因为每个部分都小于服务器端的限制。

于 2014-05-02T00:17:26.580 回答
0

经过研究,我之前的建议 FileReference 是一个坏主意,因为 BitmapData 是在内存中创建的。

我会建议尝试如何将 ByteArray(来自 Flash)和一些表单数据发送到 php?

于 2011-09-15T14:45:37.570 回答
0

所以在玩弄了flash之后,我想出了一个解决方案;

我只是将 data_string 分解为给定大小的子字符串,然后枚举这些子字符串,并使用 URLLoader 传输每个子字符串以及一个 part_id。

然后在服务器端由 part_ids 完成子字符串的收集。

于 2011-09-15T18:51:58.330 回答
0

首先,所有 POST 方法在 IE 中大约 2000+ 个字符时都失败(至少在 8 个字符之前)。

接下来,有一个限制URLLoader:参见F​​lash/AS3 - 同时 URLLoader.load() 请求的数量是否有限制?

如果可能,请尝试将您的数据分成更小的部分并以这种方式发送。这将消除最大的问题。

于 2011-09-14T15:13:36.697 回答