在将 Sprite 保存到我的服务器时,我似乎遇到了一个有趣的问题。当我在我的 MAC 上运行 swf(远程)时,它工作正常,但是当我从我的 windows 计算机运行完全相同的 URL 时,我得到一个 #2048 SecurityError。
这是我的 AS3 代码:
public function saveSprite(s:Sprite):void {
var bmpData:BitmapData = new BitmapData(s.width, s.height, true, 0xFFFFFF);
bmpData.draw(s);
var byteArray:ByteArray = PNGEncoder.encode(bmpData);
var encodedFile:Base64Encoder = new Base64Encoder();
encodedFile.encodeBytes(byteArray);
var data:URLVariables = new URLVariables();
data.fileData = encodedFile;
data.fileName = "test.png";
data.location = "temp/";
var request:URLRequest = new URLRequest(scriptLocation);
request.method = URLRequestMethod.POST;
request.data = data;
var loader:URLLoader = new URLLoader();
loader.addEventListener(Event.COMPLETE, errorLog);
loader.addEventListener(Event.OPEN, errorLog);
loader.addEventListener(HTTPStatusEvent.HTTP_STATUS, errorLog);
loader.addEventListener(IOErrorEvent.IO_ERROR, errorLog);
loader.addEventListener(SecurityErrorEvent.SECURITY_ERROR, errorLog);
loader.addEventListener(ProgressEvent.PROGRESS, errorLog)
try {
loader.load(request);
} catch (e:*) {
debug.updateLog(e + "\n");
}
}
private function errorLog(e:*):void {
debug.updateLog(e + "\n");
}
AS3 与以下一行 PHP 文件连接:
<?php file_put_contents($_POST['location'] . $_POST['fileName'], base64_decode($_POST['fileData']));
当我在我的 Mac 上运行 SWF 时,输出如下: Log Start [Event type="open" bubbles=false cancelable=false eventPhase=2] [ProgressEvent type="progress" bubbles=false cancelable=false eventPhase=2 bytesLoaded =7 bytesTotal=0] [HTTPStatusEvent type="httpStatus" bubbles=false cancelable=false eventPhase=2 status=200 responseURL=null] [Event type="complete" bubbles=false cancelable=false eventPhase=2]
在 Windows 上,我得到以下输出: Log Start [HTTPStatusEvent type="httpStatus" bubbles=false cancelable=false eventPhase=2 status=0 responseURL=null] [SecurityErrorEvent type="securityError" bubbles=false cancelable=false eventPhase= 2 文本="错误 #2048"]
对此的任何想法将不胜感激。我自己的猜测是具有文件权限的东西,但是什么?
提前致谢!
[编辑] 它变得更有趣。1. 当我将整个项目移动到不同的服务器时,我在 windows 和 mac 上得到 #2048。2. 如果我将文件权限更改为 777,我在 windows 和 mac 上也会得到 #2048。