アップロード
私はずっとこの機能を開発したいと思っていて、いろいろと不正な方法を試しましたが、無駄でした。
昨日、blueidea で突然 Flash 8 の新機能を見つけました (Flash 8 はずっと前にインストールしていましたが、よく勉強していませんでした。本当に恥ずかしいです :p) Flash 8 にはアップロードとダウンロードのためのインターフェイスが用意されており、すぐに調べてみると、確かに優れていることがわかりました。ただし、アップロードにはバックグラウンド スクリプトのサポートが必要ですが、これで十分です。しばらく楽しむためです: D
以下は研究結果です。あえて秘密にしておくつもりはありませんが、一般公開します: D
UploadFile.fla
CODE:
// パッケージをロードします
import flash.net .FileReference;
// 主人公の FileReference オブジェクトを定義します
var fileRef:FileReference = new FileReference();
// 監視オブジェクトを定義します
var fileLsn:Object = new Object();
// のブラウズメソッドのパラメータを定義しますファイルタイプの配列 FileReference オブジェクト
// 説明: description
// 拡張子: 拡張子リスト
var fileTyp:Array = new Array({ description:"画像ファイル", extension:"*.jpg;*.gif"}, { description:"ドキュメント ファイル", extension:"*.txt;*.doc"});
btnBrowse.onRelease = function() {
//「ファイルの選択」ダイアログボックスを開きます
fileRef.browse(fileTyp);
};
btnUpload.onRelease = function() {
// アップロードを開始します
fileRef.upload("uploadFile.php");
} ;
btnClear.onRelease = function() {
strState.text = "";
} ;
//ファイル選択イベント
fileLsn.onSelect = function(file:FileReference) {
strState.text += "onSelect '"+ file.name+"'n";
};
// 選択をキャンセル
fileLsn.onCancel = function(file:FileReference) {
strState.text += "Cancel!n";
};
// ファイルを開いてアップロードを開始します
fileLsn.onOpen = function(file:FileReference) {
strState.text += "アップロード中... '"+file.name+"'n";
};
//アップロード成功
fileLsn.onComplete = function(file :FileReference) {
strState.text += "File '"+file.name+ "' アップロード成功しましたl!n";
};
// アップロードプロセス
fileLsn.onProgress = function(file:FileReference, bytesLoaded:Number, bytesTotal :Number):Void {
strState.text += "onProgress: "+file .name+" with bytesLoaded: "+bytesLoaded+" bytesTotal: "+bytesTotal+"n";
};
// HTTP エラー
fileLsn.onHTTPError = function(file:FileReference, httpError:Number) {
strState.text += " HTTP エラー: "+httpError+"n";
};
// IO エラー
fileLsn.onIOError = function(file:FileReference):Void {
strState.text += "IO エラー: "+file.name+"n" ;
};
// セキュリティ エラー
fileLsn.onSecurityError = function(file:FileReference, errorString:String):Void {
strState.text + = "onSecurityError: "+file.name+" errorString: "+errorString;
} ;
// リスナーをバインドします
fileRef.addListener(fileLsn);
// 他のプロパティまたはイベントについては、ヘルプの FileReference オブジェクトに関する章を参照してください
UploadFile.php
CODE:
php
//Flashによって渡されるファイルフォーム名の属性は Filedata
$fileName = $_FILES["Filedata"]["name"];
$file = $_FILES ["Filedata"]["tmp_name"];
$ path = "uploadFiles/";
if (move_uploaded_file($file, $path . $fileName)){
// echo 1;
}else{
// echo 0;
}
/*
* コードをアップロードするだけですで十分です
* Flash はファイルの戻り値を判断していないようです
* ファイルがエラーを報告しても、Flash はそれを解析できません
* したがって、このファイルにエラーがないことを確認するのが最善です
* /
? >
ソースファイルのダウンロード