我想上傳圖像文件到我的服務器使用AS3和PHP,並且此刻我成功上傳多個文件並將其限制爲圖像只,但因爲我新的Flash和AS3,我發現很難弄清楚如何在上傳文件時顯示加載條顯示,以及在所有文件上傳到指定幀後執行一個函數。PHP/Actionscript 3多個文件上傳與進度指示器
這裏是我的代碼迄今,
AS3:
import flash.net.FileReferenceList;
import flash.events.Event;
import flash.net.URLRequest;
import flash.net.FileReference;
var fileRef:FileReferenceList = new FileReferenceList();
fileRef = new FileReferenceList();
fileRef.browse(new Array(new FileFilter("Images (*.jpg, *.jpeg, *.gif, *.png)", "*.jpg;*.jpeg;*.gif;*.png")));
fileRef.addEventListener(Event.SELECT, fileSelectHandler);
var uploadURL:URLRequest = new URLRequest();
var uploadPhotoScript:String = "http://127.0.0.1/upload.php";
uploadURL.url = uploadPhotoScript;
function fileSelectHandler(event:Event):void {
for each(var fileToUpload:FileReference in fileRef.fileList){
uploadSingleFile(fileToUpload);
}
}
function uploadSingleFile(file:FileReference):void {
file.upload(uploadURL);
file.addEventListener(Event.COMPLETE, completeHandler);
}
function completeHandler(event:Event):void {
trace("upload complete");
}
PHP:
if(!empty($_FILES)){
$tmpfile = $_FILES['Filedata']['tmp_name'];
$targetfile = dirname(__FILE__) . '/' . $_FILES['Filedata']['name'];
move_uploaded_file($tmpfile, $targetfile);
}
我的問題是,
1:我怎麼能顯示百分比或一個表示文件進度的上傳欄es正在上傳?
2:如何在所有文件上傳成功後啓動回撥功能?
3:如何讓文件瀏覽器在點擊時出現,而不是在加載Flash文件時出現?
如果你們可以發佈一個鏈接或兩個好的教程/資源或一些建議,甚至是一個代碼片段或兩個,這將是一個很大的幫助,因爲我是很新的ActionScript 3的
在感謝名單提前!
還要注意在此代碼示例我沒有做的事情像你這個對象後刪除事件偵聽器。理想情況下,在上傳完成回調的地方,您需要獲取對FileReference進行回調的引用,然後從中刪除onProgress和onComplete監聽器。事件偵聽器強烈地綁定到它們所連接的對象,這可以防止垃圾收集中的對象。 – 2011-05-29 20:53:40
謝謝如此多的詳細回覆,我現在正在實施一切,將回饋我的進展! :) – Odyss3us 2011-05-30 07:25:44
一切按預期工作,再次thanx!欣賞它! – Odyss3us 2011-06-06 09:50:02