在Action Script 3中自动上传

时间:2012-02-26 09:34:19

标签: flash actionscript-3 upload speed-test

我需要测试AS 3.0中客户端计算机的上传速度。所以我想在没有用户交互的情况下将嵌入到swf的图像上传到服务器。 你知道怎么做吗?

2 个答案:

答案 0 :(得分:1)

最简单的方法是在post请求中将任何数据作为二进制文件发送。但是,上传是另一回事,因为它还需要服务器端的IO。

目前尚不清楚服务器端的选项和/或要求是什么。是否必须模仿HTML表单行为(即它是否必须发送多部分表单数据头?)或者您可以使用content-type:application / octet-stream?这是不同的,因为首先只能通过FileReference完成,或者需要您修补服务器以发送策略文件以响应特定请求+使用套接字自己实现HTTP协议。虽然发送纯二进制数据(第二个选项)更容易实现且限制更少,但您需要管理服务器上所需的IO,以便自己保存上传的数据。

请注意,无法自动测试FileReference行为,因为它要求用户单击,并且只会发送数据以响应点击事件。

答案 1 :(得分:0)

您好我找到了用图像完成此操作的最佳方法。 首先我创建了一个字节数组

private var _byteArray:ByteArray = new ByteArray();
for(var i:int = 0; i < 200 * 1024;i++)
{
  _byteArray.writeByte(1);
}

使用urlloader和urlrequest

将200KB bytearray发送到服务器
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");
}