Flash ファイルアップロード AS3.0

Flashに関してはさっぱりなので何から手を付けるべきかよくわかりませんが、
とりあえずフラッシュを通してPHPを動かし、ファイルをアップロードしてみます。

基本的ですがボタンの構造から

インスタンス名.addEventListener(MouseEvent.CLICK, 呼び出す関数);
function 関数名(e:Event):void{
  //実行する内容
}

addEventListenerでインスタンスに対しどんなイベントをもたせるかを指定するわけですね

「e:Event」にはMouseEventの情報が格納されているそうです

とりあえずこちらの記事(http://blog.nipx.jp/archives/4137)を参考に、
マウスでボタンをクリックしたらファイルダイアログを呼び出してPHPと連携したのがこちら

btn_upload.addEventListener(MouseEvent.CLICK, selectFile);

function selectFile(e:Event){
	var file:FileReference	= new FileReference();
	var req:URLRequest	= new URLRequest( "upload.php" );
	file.browse();
	file.addEventListener(Event.SELECT, function( e:Event ):void{
		file.upload( req );
	});
}

イベントリスナを見るとファイル選択時にPHPが呼び出されています。

PHP部分は次のようになっています

<?php
$name = $_FILES[ 'Filedata' ]['name'];
$tmp = $_FILES[ 'Filedata' ]['tmp_name'];
move_uploaded_file( $tmp, "./$name" );
?>

こっちはシンプルですね。
「Filedata」という名前は指定していないですがそう決まってるようです。

このまま設置すると危険すぎるので別途ハッシュチケットのようなものを同時に送信するなどの必要がありそうですが、
どうするのがセオリーなのかまだちゃんと分かってないです。

URLRequestにGETとして渡せばいいんでしょうか。




コメントを残す

メールアドレスが公開されることはありません。 ※ が付いている欄は必須項目です