小程序文件下載wx.downloadFile
DownloadTask wx.downloadFile(Object object)
下載文件資源到本地?蛻舳酥苯影l(fā)起一個 HTTPS GET 請求,返回文件的本地臨時路徑 (本地路徑),單次下載允許的最大文件為 200MB。使用前請注意閱讀相關(guān)說明。
注意:請在服務(wù)端響應(yīng)的 header 中指定合理的 Content-Type 字段,以保證客戶端正確處理文件類型。
參數(shù)
Object object
屬性 類型 默認值 必填 說明 最低版本
url string 是 下載資源的 url
header Object 否 HTTP 請求的 Header,Header 中不能設(shè)置 Referer
timeout number 否 超時時間,單位為毫秒 2.10.0
filePath string 否 指定文件下載后存儲的路徑 (本地路徑) 1.8.0
success function 否 接口調(diào)用成功的回調(diào)函數(shù)
fail function 否 接口調(diào)用失敗的回調(diào)函數(shù)
complete function 否 接口調(diào)用結(jié)束的回調(diào)函數(shù)(調(diào)用成功、失敗都會執(zhí)行)
object.success 回調(diào)函數(shù)
參數(shù)
Object res
屬性 類型 說明 最低版本
tempFilePath string 臨時文件路徑 (本地路徑)。沒傳入 filePath 指定文件存儲路徑時會返回,下載后的文件會存儲到一個臨時文件
filePath string 用戶文件路徑 (本地路徑)。傳入 filePath 時會返回,跟傳入的 filePath 一致
statusCode number 開發(fā)者服務(wù)器返回的 HTTP 狀態(tài)碼
profile Object 網(wǎng)絡(luò)請求過程中一些調(diào)試信息,查看詳細說明 2.10.4
結(jié)構(gòu)屬性 類型 說明
redirectStart number 第一個 HTTP 重定向發(fā)生時的時間。有跳轉(zhuǎn)且是同域名內(nèi)的重定向才算,否則值為 0
redirectEnd number 最后一個 HTTP 重定向完成時的時間。有跳轉(zhuǎn)且是同域名內(nèi)部的重定向才算,否則值為 0
fetchStart number 組件準備好使用 HTTP 請求抓取資源的時間,這發(fā)生在檢查本地緩存之前
domainLookupStart number DNS 域名查詢開始的時間,如果使用了本地緩存(即無 DNS 查詢)或持久連接,則與 fetchStart 值相等
domainLookupEnd number DNS 域名查詢完成的時間,如果使用了本地緩存(即無 DNS 查詢)或持久連接,則與 fetchStart 值相等
connectStart number HTTP(TCP) 開始建立連接的時間,如果是持久連接,則與 fetchStart 值相等。注意如果在傳輸層發(fā)生了錯誤且重新建立連接,則這里顯示的是新建立的連接開始的時間
connectEnd number HTTP(TCP) 完成建立連接的時間(完成握手),如果是持久連接,則與 fetchStart 值相等。注意如果在傳輸層發(fā)生了錯誤且重新建立連接,則這里顯示的是新建立的連接完成的時間。注意這里握手結(jié)束,包括安全連接建立完成、SOCKS 授權(quán)通過
SSLconnectionStart number SSL建立連接的時間,如果不是安全連接,則值為 0
SSLconnectionEnd number SSL建立完成的時間,如果不是安全連接,則值為 0
requestStart number HTTP請求讀取真實文檔開始的時間(完成建立連接),包括從本地讀取緩存。連接錯誤重連時,這里顯示的也是新建立連接的時間
requestEnd number HTTP請求讀取真實文檔結(jié)束的時間
responseStart number HTTP 開始接收響應(yīng)的時間(獲取到第一個字節(jié)),包括從本地讀取緩存
responseEnd number HTTP 響應(yīng)全部接收完成的時間(獲取到最后一個字節(jié)),包括從本地讀取緩存
rtt number 當(dāng)次請求連接過程中實時 rtt
estimate_nettype number 評估的網(wǎng)絡(luò)狀態(tài) unknown, offline, slow 2g, 2g, 3g, 4g, last/0, 1, 2, 3, 4, 5, 6
httpRttEstimate number 協(xié)議層根據(jù)多個請求評估當(dāng)前網(wǎng)絡(luò)的 rtt(僅供參考)
transportRttEstimate number 傳輸層根據(jù)多個請求評估的當(dāng)前網(wǎng)絡(luò)的 rtt(僅供參考)
downstreamThroughputKbpsEstimate number 評估當(dāng)前網(wǎng)絡(luò)下載的kbps
throughputKbps number 當(dāng)前網(wǎng)絡(luò)的實際下載kbps
peerIP string 當(dāng)前請求的IP
port number 當(dāng)前請求的端口
socketReused boolean 是否復(fù)用連接
sendBytesCount number 發(fā)送的字節(jié)數(shù)
receivedBytedCount number 收到字節(jié)數(shù)
protocol string 使用協(xié)議類型,有效值:http1.1, h2, quic, unknown
返回值
DownloadTask
基礎(chǔ)庫 1.4.0 開始支持,低版本需做兼容處理。
一個可以監(jiān)聽下載進度變化事件和取消下載的對象
示例代碼
wx.downloadFile({
url: 'https://example.com/audio/123', //僅為示例,并非真實的資源
success (res) {
// 只要服務(wù)器有響應(yīng)數(shù)據(jù),就會把響應(yīng)內(nèi)容寫入文件并進入 success 回調(diào),業(yè)務(wù)需要自行判斷是否下載到了想要的內(nèi)容
if (res.statusCode === 200) {
wx.playVoice({
filePath: res.tempFilePath
})
}
}
})
作者:大學(xué)生新聞網(wǎng) 來源:大學(xué)生新聞網(wǎng)