Flash上傳檔案

來源:互聯網
上載者:User
前段時間Blog突然掛了,伺服器電訊廠商那邊說因為使用的blog程式有問題,佔用了大量的頻寬資源,所有被停了,前兩天剛剛協調好才又給開了。
這些天同樣還是挺忙挺累的,希望苦日子早點熬過去,身體已經開始透支了。
最近正在研究Flash如何上傳檔案的問題,網上找了些文章,覺得還不錯,發出來大家共用一下。

以下皆為轉載:

[原]利用 Flash 8 上傳檔案

一直想搞這個功能, 想了很多歪門邪道, 未果!
昨天突然在 blueidea 上看到關於 Flash 8 的新特性 (雖然早就裝上了 Flash 8 但一直沒有仔細研究, 真是慚愧 :p) 中介紹了 flash 8 提供了上傳和下載的介面, 馬上下去研究了一下, 果然不錯. 雖然上傳還是需要後台指令碼的支援, 但也足夠我美上一陣子的了
下面是研究成果, 不敢獨享, 拿出來示眾
UploadFile.fla

CODE:
// 載入包
import flash.net.FileReference;
// 定義主角 FileReference 對象
var fileRef:FileReference = new FileReference();
// 定義 監聽對象
var fileLsn:Object = new Object();
// 定義 檔案類型數組 FileReference 對象的 browse 方法的參數
// description: 描述
// extension : 副檔名列表
var fileTyp:Array = new Array({description:"Image files", extension:"*.jpg;*.gif"}, {description:"Document files", 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 += "Uploading... '"+file.name+"'/n";
};
// 上傳成功
fileLsn.onComplete = function(file:FileReference) {
strState.text += "File '"+file.name+"' upload successfull!/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 ERROR: "+httpError+"/n";
};
// IO 錯誤
fileLsn.onIOError = function(file:FileReference):Void {
strState.text += "IO Error: "+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 傳遞的檔案表單 name 屬性為 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 也無法分析
* 所以最好保證這個檔案不會出錯
*/
?>
源檔案下載
 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.