国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 網站 > WEB開發 > 正文

23.1.下載文件

2024-04-27 13:46:58
字體:
來源:轉載
供稿:網友
問題
我想讓用戶從服務器上下載文件
解決辦法
使用FileReference 對象的download( ) 方法
討論
flash.net.FileReference 類定義了一個download( ) 方法允許用戶通過URL下載文件。當Flash播放器調用download( )方法時,它試圖打開一個對話框,標題為"Select location for download.",這個對話框使用標準的系統對話框讓用戶選擇文件保存路徑。

在調用download( )方法之前,先構造一個FileReference 對象,如:
+展開
-ActionScript
var fileReference:FileReference = new FileReference( );

download( ) 方法至少需要一個URLRequest 對象作為參數,指定下載文件的路徑,下面的例子打開保存對話框保存下載的example.txt 文件:
+展開
-ActionScript
var urlRequest:URLRequest = new URLRequest("example.txt");
fileReference.download(urlRequest);

文件路徑還可以是絕對路徑:
+展開
-ActionScript
var urlRequest:URLRequest = new URLRequest("http://www.myexamplesite.com/example.txt");
fileReference.download(urlRequest);

保存對話框允許對下載的文件進行重命名,默認是與服務器文件的名稱相同,如上面的例子,

保存對話框顯示的名稱為example.txt。但在大多數情況下,我們喜歡重命名文件,比如一個有服務端腳本產生的靜態文件采用統一的命名規則進行命名(如R7AS82892KHWI014.jpg) 可能它不會顯示出這個名字,因為這是由服務端腳本動態生成,如果URLRequest對象指向這個腳本那么保存對話框顯示的可能就是腳本的名字(如., script.cgi),這樣很不友好,也將導致文件無法被系統識別,因為文件擴展名并不正確。

download( ) 方法的第二個參數就是指定顯示在保存對話框的文件名,下面的例子演示用戶下載一個動態生成的圖片文件,默認的文件名為(script.cgi),這里指定保存的文件名為example.jpg:
+展開
-ActionScript
var urlRequest:URLRequest = new URLRequest("script.cgi");
fileReference.download(urlRequest, "example.jpg");

download( ) 方法最好放在try...catch 語句中執行,因為該方法可能會拋出異常,主要兩種異常:
IllegalOperationError和SecurityError。當保存對話框已經打開的情況下調用download( )方法會拋出IllegalOperationError,SecurityError異常是由于SWF不允許下載所導致。
+展開
-ActionScript
try {
fileReference.download(urlRequest, fileName);
}
catch (illegalOperation:IllegalOperationError) {
// code to handle an illegal operation error
}
catch (security:SecurityError) {
// code to handle a security error
}

還有些不太常見的異常,如ArgumentError和MemoryError。ArgumentError是由于URLRequest 的data屬性不是URLVariables。雖然URLRequest的data屬性可設置為二進制數組,但是download( )方法只有在data屬性為URLVariables時才有效。memory 異常比較少見,有兩種可能會導致此異常:當URLRequest設置為GET請求而且System.useCodePage為true,Flash播放器將不能把Unicode轉換到字節字符格式,還有可能就是Flash播放器沒有足夠的內存打開保存對話框。

像SecurityErrorEvent 和IOErrorEvent. 異常必須監聽異常處理函數, 如下面的例子為IOErrorEvent添加處理函數:
+展開
-ActionScript
fileReference.addEventListener(IOErrorEvent.IO_ERROR, onIOError);
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 泗水县| 苍溪县| 安阳市| 涞水县| 水城县| 循化| 东明县| 那坡县| 武义县| 黄浦区| 饶阳县| 紫金县| 陵水| 林甸县| 远安县| 岳池县| 东方市| 清远市| 青田县| 兴隆县| 龙州县| 桓台县| 洛扎县| 常德市| 中山市| 南投市| 新密市| 德庆县| 宜良县| 宜宾县| 东方市| 黄龙县| 饶阳县| 清河县| 阳原县| 自贡市| 屯留县| 开封市| 正阳县| 广南县| 古浪县|