我需要在 AS 3.0 中测试客户端机器的上传速度。所以我想上传一个嵌入到 swf 的图像到服务器,而不需要用户交互。你知道如何做到这一点吗?
问问题
422 次
2 回答
1
最简单的方法是在发布请求中以二进制形式发送任何数据。然而,上传是另一回事,因为它还需要服务器端的 IO。
目前尚不清楚服务器端的选项和/矿石要求是什么。它是否必须模仿 HTML 表单行为(即它是否必须发送多部分表单数据头?)或者您可以只使用 content-type:application/octet-stream 吗?这是不同的,因为首先只能通过 FileReference 完成,或者需要您修补服务器以发送策略文件以响应特定请求 + 使用套接字自行实现 HTTP 协议。虽然发送纯二进制数据(第二个选项)更容易实现并且限制更少,但是您需要管理服务器上所需的 IO 以自行保存上传的数据。
请注意,自动测试 FileReference 行为是不可能的,因为它需要用户单击,并且它只会发送数据以响应单击事件。
于 2012-02-26T14:11:34.033 回答
0
嗨,我找到了没有图像的最佳方法。首先我创建了一个字节数组,
private var _byteArray:ByteArray = new ByteArray();
for(var i:int = 0; i < 200 * 1024;i++)
{
_byteArray.writeByte(1);
}
并使用 urlloader 和 urlrequest 将 200KB 字节数组发送到服务器
uploadURL = new URLRequest();
uploadURL.url = "upload.php";
uploadURL.contentType = 'application/octet-stream';
uploadURL.method = URLRequestMethod.POST;
uploadURL.data = _byteArray;
urlLoader = new URLLoader();
urlLoader.addEventListener(Event.COMPLETE, completeHandler);
urlLoader.load(uploadURL);
protected function completeHandler(event:Event):void
{
trace("Upload Complete");
}
于 2012-02-27T17:48:37.923 回答