我需要测试AS 3.0中客户端计算机的上传速度。所以我想在没有用户交互的情况下将嵌入到swf的图像上传到服务器。 你知道怎么做吗?
答案 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");
}