home > FileReference.postData
FileReference.postData
December 22, 2008
FileReferenceで情報をmultipartで送信する方法。AS2
postDataはAS3から使用できるようになったと思っていたのですが違うみたいです。
配列アクセス演算子をつかって代入すれば大丈夫みたいです。
fileRef["postData"] = "post1=hoge&post2=hogehoge";
fileRef.upload("sample.php");
import flash.net.FileReference;
allTypes = new Array();
imageTypes = new Object();
imageTypes.description = "Images (*.jpg, *.jpeg)";
imageTypes.extension = "*.jpg; *.jpeg";
allTypes.push(imageTypes);
listener = new Object();
listener.onSelect = function(file:FileReference):Void {
trace("onSelect: " + file.name);
}
listener.onCancel = function(file:FileReference):Void {
trace("onCancel");
}
listener.onOpen = function(file:FileReference):Void {
trace("onOpen: " + file.name);
}
listener.onProgress = function(file:FileReference, bytesLoaded:Number, bytesTotal:Number):Void {
trace("onProgress with bytesLoaded: " + bytesLoaded + " bytesTotal: " + bytesTotal);
}
listener.onComplete = function(file:FileReference):Void {
trace("onComplete: " + file.name);
}
listener.onHTTPError = function(file:FileReference):Void {
trace("onHTTPError: " + file.name);
}
listener.onIOError = function(file:FileReference):Void {
trace("onIOError: " + file.name);
}
listener.onSecurityError = function(file:FileReference, errorString:String):Void {
trace("onSecurityError: " + file.name + " errorString: " + errorString);
}
fileRef = new FileReference();
fileRef.addListener(listener);
fileRef.browse(allTypes);fileRef["postData"] = "post1=hoge&post2=hogehoge";
file_btn.onRelease = function():Void {
fileRef.browse();
};
upload_btn.onRelease = function():Void {
fileRef.upload("sample.php");
};
【追記】
あと、AS3ではDataEvent.UPLOAD_COMPLETE_DATAみたいなのもあるようですね。
詳細はこちら
http://level0.kayac.com/2008/06/as3filereferencepostdata.php
ちなみにこれではデータを送信できてもサーバーからの返り値を受け取ることはできないようです。
FlashPlayer9以上ならAS2でもonUploadCompleteDataで返り値も取れるっぽいですね(Require Flash Player 9.0.28.0 パラメータ)
onUploadCompleteData = function(fileRef: FileReference, data: String):Void {}
http://f-site.org/articles/2007/06/30234010.html
【さらに追記】
今度はMacだけupload()でアップができない現状が発生しました。
uploadした時に空の値を返さないとダメらしいです。
http://www.neetranger.com/red/2006/12/filereference2.html