AS3でByteArrayをPHPに渡して保存するメモ

ここでも紹介されているけど、AS3でバイナリーデータをサーバに保存する方法を極力単純化してメモ。


AS3の抜粋。
req.contentType = 'application/octet-stream';
が大切

private function sendObjectPHP():void{
  var obj:Object ={val1:123,val2:"test"}
  var byteArr:ByteArray = new ByteArray
 byteArr.writeObject(obj)
 byteArr.position = 0;
 var req:URLRequest = new URLRequest();
 var loader:URLLoader = new URLLoader();
 req.url = 'saveBinary.php';
 req.contentType = 'application/octet-stream';
 req.method = URLRequestMethod.POST;
 req.data = byteArr;
 loader.addEventListener(Event.COMPLETE,loadComplete)
 loader.load(req)
 function loadComplete(e:Event):void{
trace("complete")
  }
}


phpソース
$bin = file_get_contents("php://input");
$path = dirname(__FILE__);
$tmpfname = tempnam($path,'dat_');
unlink($tmpfname);
$tmpfname = $tmpfname . '.bin';
$fp = fopen($tmpfname, 'wb');
fwrite($fp, $bin);
fclose($fp);


これで「dat_hogehoge.bin」ファイルが生成。バイナリエディタで見ると
val1:123
val2:"test"
が確認できる。

zipファイルはコチラhttp://memo.kappa-lab.com/samples/sendBinaryToPHP.zip

Trackback

http://memo.kappa-lab.com/mt-tb.cgi/96

Leave your comment :

(いままで、ここでコメントしたことがないときは、コメントを表示する前に承認が必要になることがあります。そのときはしばらくお待ちください。)




RSS + Contuct

  • rss
  • email

Credit

Copyright (C) 2007 kappa-lab.com.
All Rights Reserved.