2009-05-26 5 views
0

私はActionscript 3のURLLoaderを使ってファイルをアップロードしようとしていますが、少なくともドキュメントによればそれは可能ですが、それはわかりません。だから、誰かがこれをやってから、私が何を残しているのか、特にURLRequestとそのデータプロパティについてはわかりません。私はファイルのデータがそこに行かなければならないことを知っていますが、どうすればよいのか分かりません。URLLoaderを使用してActionscript 3に他の変数を含むファイルをアップロードしていますか?

は、ここに私が働いているコードの非常に初歩的な形です:あなたは、常にその道を行くことができ

//=============================================== 
public function sendRequest():void { 
//=============================================== 

    var newFile:FileReference(); //this eventually gets data loaded to it before I make request 
    var sendForm:URLLoader = new URLLoader(); 
    var urlString:String = "/proposal_request/?"; 
    var header:URLRequestHeader = new URLRequestHeader("Content-Disposition: attache[attachment]; filename=" + newFile.name); 
    ... 

    ... 
    urlString += "variable=" + instance_name.text; 
    urlString += "another_variable=" + another_instance_name.text; 
    ... 

    ... 
    var requester:URLRequest = new URLRequest(urlString); 
    requester.contentType = "multipart/form-data"; 
    requester.method = URLRequestMethod.POST; 
    requester.requestHeaders.push(header); 
    requester.data = newFile; //here's where I'm most confused, should this be encoded? 
    ... 

    ... 
    sendForm.addEventListener(HTTPStatusEvent.HTTP_STATUS, responseStatus); 
    sendForm.load(requester); 

} 

答えて

2

- しかし、あなたは本当にする必要はありません。

FileReferenceクラスを使用すると、ファイルを簡単にアップロードできます。方法はupload()です。

public function upload(request:URLRequest, uploadDataFieldName:String = "Filedata", testUpload:Boolean = false):void 

あなたFileReferenceオブジェクトは、単にたURLRequestと、必要に応じて、サーバのためのいくつかの余分な情報を持つデータ・フィールドの文字列、およびます(デ)アクティブブール値を渡すアップロードを呼び出して、いくつかのデータを持っていた後、テストアップロード:ファイルが10KBを超える場合、Flash Playerは実際のファイルをアップロードする前に接続テストとして0バイトのファイルを送信しようとします。

その後あなただけのアップロードを追跡するために進行完全uploadDataCompleteイベントをリッスンすることができます。あなたがのFileReferenceを使用してブラウズした後、ファイルのデータを変更しない場合

Adobe AS3 Reference on FileReference.upload()

+0

男私はそのページを束にしていました。アップロードするURLRequestを渡すことはできませんでしたが、理由はわかりません。私はあまりにも多くのものをチェックしていたと思う。ありがとうございました。 –

0

上記の罰金です。アップロード前に画像のサイズを変更したり画像を切り抜いたりすると、FileReference.uploadを使用してアップロードする方法を考えてみましょう。

URLLoaderを使用してバイナリデータをサーバーに送信できますが、この場合、画像が完全にアップロードされた後でのみProgressEventが起動されるため、アップロードの進行状況は利用できません。

サイズ変更されたイメージの中間イメージアップロードの進行状況を表示する方法はありますか?FileReferenceコンポーネントによって表示されるものと同様です。

+0

質問に対する答えの中の素敵な質問、男 –

関連する問題