uni-app 下載檔案(四)
阿新 • • 發佈:2019-01-31
下載檔案資源到本地,客戶端直接發起一個 HTTP GET 請求,返回檔案的本地臨時路徑。
OBJECT 引數說明
引數名 | 型別 | 必填 | 說明 |
---|---|---|---|
url | String | 是 | 下載資源的 url |
header | Object | 否 | HTTP 請求 Header, header 中不能設定 Referer |
success | Function | 否 | 下載成功後以 tempFilePath 的形式傳給頁面,res = {tempFilePath: '檔案的臨時路徑'} |
fail | Function | 否 | 介面呼叫失敗的回撥函式 |
complete | Function | 否 | 介面呼叫結束的回撥函式(呼叫成功、失敗都會執行) |
注:檔案的臨時路徑,在應用本次啟動期間可以正常使用,如需持久儲存,需在主動呼叫 uni.saveFile,才能在應用下次啟動時訪問得到。
success 返回引數說明
引數 | 型別 | 說明 |
---|---|---|
tempFilePath | String | 臨時檔案路徑,下載後的檔案會儲存到一個臨時檔案 |
statusCode | Number | 開發者伺服器返回的 HTTP 狀態碼 |
示例
uni.downloadFile({ url: 'https://www.example.com/file/test', //僅為示例,並非真實的資源 success: function (res) { if (res.statusCode === 200) { console.log('下載成功'); } } });
返回值
返回一個 downloadTask
物件,通過 downloadTask
,可監聽上傳進度變化事件,以及取消上傳任務。
downloadTask 物件的方法列表
方法 | 引數 | 說明 | 最低版本 |
---|---|---|---|
onProgressUpdate | callback | 監聽下載進度變化 | * |
abort | 中斷下載任務 | * |
onProgressUpdate 返回引數說明
引數 | 型別 | 說明 |
---|---|---|
progress | Number | 下載進度百分比 |
totalBytesWritten | Number | 已經下載的資料長度,單位 Bytes |
totalBytesExpectedToWrite | Number | 預期需要下載的資料總長度,單位 Bytes |
示例
const downloadTask = uni.downloadFile({
url: 'http://www.example.com/file/test', //僅為示例,並非真實的資源
success: function (res) {
if (res.statusCode === 200) {
console.log('下載成功');
}
}
});
downloadTask.onProgressUpdate(function (res) {
console.log('下載進度' + res.progress);
console.log('已經下載的資料長度' + res.totalBytesWritten);
console.log('預期需要下載的資料總長度' + res.totalBytesExpectedToWrite);
// 測試條件,取消下載任務。
if (res.progress > 50) {
downloadTask.abort();
}
});