如何将BitmapData上传到服务器(ActionScript 3)?

ser*_*g66 1 flash urlloader actionscript-3 bitmapdata

我有bitmapData.我想使用URLLoader将其上传到服务器.我尝试了很多方法,但没有结果.这是我在ActionScript 3中的当前代码:

import flash.net.URLLoader;
import flash.net.URLRequest;
import mx.graphics.codec.JPEGEncoder;
...
var jpg:JPEGEncoder = new JPEGEncoder();
var myBytes:ByteArray = jpg.encode(bitmapData);
var uploader:URLLoader = new URLLoader();
var request:URLRequest = new URLRequest("uploadFile.php");
request.contentType = "application/octet-stream";
request.data = myBytes;
uploader.load(request);
Run Code Online (Sandbox Code Playgroud)

我拿一个对象bitmapData并将其编码为jpg.之后,我尝试将jpg-bytes发送到服务器上的文件"uploadFile.php".但既没有错误也没有积极的结果.我将不胜感激任何建议/意见.

Jef*_*ard 5

这是我以前用过的AS3代码 - 这会在请求体中发出带有二进制数据的POST请求:

var url_request:URLRequest = new URLRequest();
url_request.url = "http://server.com/upload.php";
url_request.contentType = "binary/octet-stream";
url_request.method = URLRequestMethod.POST;
url_request.data = myByteArray;
url_request.requestHeaders.push(
 new URLRequestHeader('Cache-Control', 'no-cache'));

var loader:URLLoader = new URLLoader();
loader.dataFormat = URLLoaderDataFormat.BINARY;
// attach complete/error listeners
loader.load(url_request);
Run Code Online (Sandbox Code Playgroud)

我注意到你没有将.dataFormat设置为BINARY或.method设置为POST.

请注意,这可能是您遇到的安全问题.我见过像这样的代码必须执行以响应用户操作(如点击按钮)的情况.

您还应该检查服务器日志以查看请求是否正在向服务器发送.请注意,如果没有完全限定的URL(以http://开头),它会假定服务器从与SWF文件相同的位置提供PHP文件.