聘我网

新概念招聘3.0

为何flash无法上传图片到服务器?

vote up0vote downstar

我是这样上传图片到服务器端的(PHP):

private function savePicToServer(bmpData:BitmapData):void 
{ 
    trace("in savePicToServer"); 
    trace(bmpData); 
    var jpgEncoder:JPGEncoder = new JPGEncoder(85); 
    var jpgStream:ByteArray = jpgEncoder.encode(bmpData); 

    var loader:URLLoader = new URLLoader(); 

    var header:URLRequestHeader = new URLRequestHeader("Content-type", "application/octet-stream"); 
    var request:URLRequest = new URLRequest("http://localhost/test.php"); 
    request.requestHeaders.push(header); 
    request.method = URLRequestMethod.POST; 
    request.data = jpgStream; 
    loader.load(request); 
    trace("finish savePicToServer"); 
} 

服务器端代码如下:

file_put_contents('data.txt',var_export($_POST) . var_export($_FILES) . "\r\n" . $_SERVER['REMOTE_ADDR']);

但是在data.txt中只有:

127.0.0.1 

trace的输出是:

in savePicToServer 
[object BitmapData] 
finish savePicToServer 

其中JPGEncoder是引用了as3corelib

 

1 个答复

vote up0vote downcheck

$HTTP_RAW_POST_DATA才能访问到,$_POST$_GET$_FILES都只能访问key/value对形式的数据。

如果always_populate_raw_post_data设置成了false,那么可以这样访问:

file_get_contents("php://input")
链接

您的回答





不是您要找的问题? 浏览其他含有标签 的问题或者 自己问个.