新聞中心
wx.uploadFile(OBJECT)
將本地資源上傳到開發(fā)者服務(wù)器。如頁面通過 wx.chooseImage 等接口獲取到一個本地資源的臨時文件路徑后,可通過此接口將本地資源上傳到指定服務(wù)器。客戶端發(fā)起一個HTTPS POST請求,其中Content-Type為multipart/form-data。

OBJECT參數(shù)說明:
| 參數(shù) | 類型 | 必填 | 說明 |
|---|---|---|---|
| url | String | 是 | 開發(fā)者服務(wù)器url |
| filePath | String | 是 | 要上傳文件資源的路徑 |
| name | String | 是 | 文件對應(yīng)的key , 開發(fā)者在服務(wù)器端通過這個key可以獲取到文件二進制內(nèi)容 |
| header | Object | 否 | HTTP 請求 Header,header中不能設(shè)置Referer |
| formData | Object | 否 | HTTP 請求中其他額外的form data |
| 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í)行) |
success返回參數(shù)說明:
| 參數(shù) | 類型 | 說明 |
|---|---|---|
| data | String | 開發(fā)者服務(wù)器返回的數(shù)據(jù) |
| statusCode | Number | HTTP狀態(tài)碼 |
示例代碼:
wx.chooseImage({ success:function(res){ var tempFilePaths = res.tempFilePaths wx.uploadFile({ url: 'http://example.weixin.qq.com/upload', //僅為示例,非真實的接口地址 filePath: tempFilePaths[0], name:"file", formData:{ "user":"test" }success: function(res){var data = res.data//do something} }) } })
返回值:
基礎(chǔ)庫 1.4.0 開始支持,低版本需做兼容處理。
返回一個uploadTask對象,通過uploadTask,可監(jiān)聽上傳進度變化事件,以及取消上傳任務(wù)。
uploadTask
基礎(chǔ)庫 1.4.0 開始支持,低版本需做 兼容處理。
一個可以監(jiān)聽上傳進度變化事件,以及取消上傳任務(wù)的對象
方法:
UploadTask.abort()
基礎(chǔ)庫 1.4.0 開始支持,低版本需做 兼容處理。
中斷上傳任務(wù)
UploadTask.offHeadersReceived(function callback)
基礎(chǔ)庫 2.1.0 開始支持,低版本需做 兼容處理。
取消監(jiān)聽 HTTP Response Header 事件
參數(shù)
function callback
HTTP Response Header 事件的回調(diào)函數(shù)
UploadTask.offProgressUpdate(function callback)
基礎(chǔ)庫 2.1.0 開始支持,低版本需做 兼容處理。
取消監(jiān)聽上傳進度變化事件
參數(shù)
function callback
上傳進度變化事件的回調(diào)函數(shù)
UploadTask.onHeadersReceived(function callback)
基礎(chǔ)庫 2.1.0 開始支持,低版本需做 兼容處理。
監(jiān)聽 HTTP Response Header 事件。會比請求完成事件更早
參數(shù)
function callback
HTTP Response Header 事件的回調(diào)函數(shù)
參數(shù)
Object res
| 屬性 | 類型 | 說明 |
|---|---|---|
| header | Object | 開發(fā)者服務(wù)器返回的 HTTP Response Header |
UploadTask.onProgressUpdate(function callback)
基礎(chǔ)庫 1.4.0 開始支持,低版本需做 兼容處理。
監(jiān)聽上傳進度變化事件
參數(shù)
function callback
上傳進度變化事件的回調(diào)函數(shù)
參數(shù)
Object res
| 屬性 | 類型 | 說明 |
|---|---|---|
| progress | number | 上傳進度百分比 |
| totalBytesSent | number | 已經(jīng)上傳的數(shù)據(jù)長度,單位 Bytes |
| totalBytesExpectedToSend | number | 預(yù)期需要上傳的數(shù)據(jù)總長度,單位 Bytes |
示例代碼:
const uploadTask = wx.uploadFile({
url: 'http://example.weixin.qq.com/upload', //僅為示例,非真實的接口地址
filePath: tempFilePaths[0],
name: 'file',
formData:{
'user': 'test'
},
success: function(res){
var data = res.data
//do something
}
})
uploadTask.onProgressUpdate((res) => {
console.log('上傳進度', res.progress)
console.log('已經(jīng)上傳的數(shù)據(jù)長度', res.totalBytesSent)
console.log('預(yù)期需要上傳的數(shù)據(jù)總長度', res.totalBytesExpectedToSend)
})
uploadTask.abort() // 取消上傳任務(wù)
Bug & Tip
tip: 最大并發(fā)限制是 10 個tip: 默認(rèn)超時時間和最大超時時間都是 60s
wx.downloadFile(OBJECT)
下載文件資源到本地??蛻舳酥苯影l(fā)起一個HTTP GET請求,返回文件的本地臨時路徑。
參數(shù)
Object object
| 屬性 | 類型 | 默認(rèn)值 | 必填 | 說明 | 最低版本 |
|---|---|---|---|---|---|
| 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 |
res.profile 的結(jié)構(gòu)
| 屬性 | 類型 | 說明 |
|---|---|---|
| redirectStart | number | 第一個 HTTP 重定向發(fā)生時的時間。有跳轉(zhuǎn)且是同域名內(nèi)的重定向才算,否則值為 0 |
| redirectEnd | number | 最后一個 HTTP 重定向完成時的時間。有跳轉(zhuǎn)且是同域名內(nèi)部的重定向才算,否則值為 0 |
| fetchStart | number | 組件準(zhǔn)備好使用 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 | string | 評估的網(wǎng)絡(luò)狀態(tài) slow 2g/2g/3g/4g |
| 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ù) |
返回值
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
})
}
}
})DownloadTask
基礎(chǔ)庫 1.4.0 開始支持,低版本需做 兼容處理。
一個可以監(jiān)聽下載進度變化事件,以及取消下載任務(wù)的對象
方法:
DownloadTask.abort()
基礎(chǔ)庫 1.4.0 開始支持,低版本需做 兼容處理。
中斷下載任務(wù)
DownloadTask.offHeadersReceived(function callback)
基礎(chǔ)庫 2.1.0 開始支持,低版本需做 兼容處理。
取消監(jiān)聽 HTTP Response Header 事件
參數(shù)
function callback
HTTP Response Header 事件的回調(diào)函數(shù)
DownloadTask.offProgressUpdate(function callback)
基礎(chǔ)庫 2.1.0 開始支持,低版本需做 兼容處理。
取消監(jiān)聽下載進度變化事件
參數(shù)
function callback
下載進度變化事件的回調(diào)函數(shù)
DownloadTask.onHeadersReceived(function callback)
基礎(chǔ)庫 2.1.0 開始支持,低版本需做 兼容處理。
監(jiān)聽 HTTP Response Header 事件。會比請求完成事件更早
參數(shù)
function callback
HTTP Response Header 事件的回調(diào)函數(shù)
參數(shù)
Object res
| 屬性 | 類型 | 說明 |
|---|---|---|
| header | Object | 開發(fā)者服務(wù)器返回的 HTTP Response Header |
DownloadTask.onProgressUpdate(function callback)
基礎(chǔ)庫 1.4.0 開始支持,低版本需做 兼容處理。
監(jiān)聽下載進度變化事件
參數(shù)
function callback
下載進度變化事件的回調(diào)函數(shù)
參數(shù)
Object res
| 屬性 | 類型 | 說明 |
|---|---|---|
| progress | number | 下載進度百分比 |
| totalBytesWritten | number | 已經(jīng)下載的數(shù)據(jù)長度,單位 Bytes |
| totalBytesExpectedToWrite | number | 預(yù)期需要下載的數(shù)據(jù)總長度,單位 Bytes |
當(dāng)前名稱:創(chuàng)新互聯(lián)小程序教程:微信小程序API 上傳、下載
URL標(biāo)題:http://www.dlmjj.cn/article/codeije.html


咨詢
建站咨詢
