2

Flash ランタイム (Flash Player 10) を使用しています。サーバー(単純なphp、FMSまたはソケットサーバーなし)に送信する必要があるflvでエンコードされたbytearrayがあり、そこに保存します。urlLoader を使用してすべてを投稿できますが、進行状況のパーセンテージを取得できないため、代わりに次のようなファイル参照で保存してみました。

var url_ref:URLRequest = new URLRequest("save_vid.php");    
url_ref.contentType = "multipart/form-data; boundary="+getBoundary();
url_ref.data = _baFlvEncoder.byteArray;
url_ref.method = URLRequestMethod.POST;

var upfileRef:FileReference = new FileReference();
upfileRef.addEventListener(ProgressEvent.PROGRESS, onUploadProgress);
upfileRef.addEventListener(Event.COMPLETE, videoUploadComplete);
upfileRef.upload(url_ref);

しかし、これを試してみると、エラーが発生します:

Error #2037: Functions called in incorrect sequence, or earlier call was unsuccessful.

どうすればこれを行うことができますか?

4

1 に答える 1

2

これを試して:

var vars :URLVariables = new URLVariables();
vars.bytearray  = _baFlvEncoder.byteArray;

var req :URLRequest = new URLRequest("save_vid.php");
req.method = URLRequestMethod.POST;
req.data = vars;

var ldr :URLLoader = new URLLoader();
ldr.addEventListener( Event.COMPLETE, onLoaded );
ldr.addEventListener( IOErrorEvent.IO_ERROR, onIOError );
ldr.addEventListener( ProgressEvent.PROGRESS, onProgress );
ldr.load( req );

function onProgress( e:ProgressEvent ):void 
{           
    trace( "Progress: " + e.bytesLoaded / e.bytesTotal );
}

そしてPHPで

$bytearray = $_POST['bytearray']
于 2012-08-16T12:16:23.227 に答える