新聞中心
wx.uploadFile(OBJECT)
將本地資源上傳到開(kāi)發(fā)者服務(wù)器。如頁(yè)面通過(guò) wx.chooseImage 等接口獲取到一個(gè)本地資源的臨時(shí)文件路徑后,可通過(guò)此接口將本地資源上傳到指定服務(wù)器??蛻舳税l(fā)起一個(gè)HTTPS POST請(qǐng)求,其中Content-Type為multipart/form-data。

OBJECT參數(shù)說(shuō)明:
| 參數(shù) | 類型 | 必填 | 說(shuō)明 |
|---|---|---|---|
| url | String | 是 | 開(kāi)發(fā)者服務(wù)器url |
| filePath | String | 是 | 要上傳文件資源的路徑 |
| name | String | 是 | 文件對(duì)應(yīng)的key , 開(kāi)發(fā)者在服務(wù)器端通過(guò)這個(gè)key可以獲取到文件二進(jìn)制內(nèi)容 |
| header | Object | 否 | HTTP 請(qǐng)求 Header,header中不能設(shè)置Referer |
| formData | Object | 否 | HTTP 請(qǐng)求中其他額外的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)用成功、失敗都會(huì)執(zhí)行) |
success返回參數(shù)說(shuō)明:
| 參數(shù) | 類型 | 說(shuō)明 |
|---|---|---|
| data | String | 開(kāi)發(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', //僅為示例,非真實(shí)的接口地址 filePath: tempFilePaths[0], name:"file", formData:{ "user":"test" }success: function(res){var data = res.data//do something} }) } })
返回值:
基礎(chǔ)庫(kù) 1.4.0 開(kāi)始支持,低版本需做兼容處理。
返回一個(gè)uploadTask對(duì)象,通過(guò)uploadTask,可監(jiān)聽(tīng)上傳進(jìn)度變化事件,以及取消上傳任務(wù)。
uploadTask
基礎(chǔ)庫(kù) 1.4.0 開(kāi)始支持,低版本需做 兼容處理。
一個(gè)可以監(jiān)聽(tīng)上傳進(jìn)度變化事件,以及取消上傳任務(wù)的對(duì)象
方法:
UploadTask.abort()
基礎(chǔ)庫(kù) 1.4.0 開(kāi)始支持,低版本需做 兼容處理。
中斷上傳任務(wù)
UploadTask.offHeadersReceived(function callback)
基礎(chǔ)庫(kù) 2.1.0 開(kāi)始支持,低版本需做 兼容處理。
取消監(jiān)聽(tīng) HTTP Response Header 事件
參數(shù)
function callback
HTTP Response Header 事件的回調(diào)函數(shù)
UploadTask.offProgressUpdate(function callback)
基礎(chǔ)庫(kù) 2.1.0 開(kāi)始支持,低版本需做 兼容處理。
取消監(jiān)聽(tīng)上傳進(jìn)度變化事件
參數(shù)
function callback
上傳進(jìn)度變化事件的回調(diào)函數(shù)
UploadTask.onHeadersReceived(function callback)
基礎(chǔ)庫(kù) 2.1.0 開(kāi)始支持,低版本需做 兼容處理。
監(jiān)聽(tīng) HTTP Response Header 事件。會(huì)比請(qǐng)求完成事件更早
參數(shù)
function callback
HTTP Response Header 事件的回調(diào)函數(shù)
參數(shù)
Object res
| 屬性 | 類型 | 說(shuō)明 |
|---|---|---|
| header | Object | 開(kāi)發(fā)者服務(wù)器返回的 HTTP Response Header |
UploadTask.onProgressUpdate(function callback)
基礎(chǔ)庫(kù) 1.4.0 開(kāi)始支持,低版本需做 兼容處理。
監(jiān)聽(tīng)上傳進(jìn)度變化事件
參數(shù)
function callback
上傳進(jìn)度變化事件的回調(diào)函數(shù)
參數(shù)
Object res
| 屬性 | 類型 | 說(shuō)明 |
|---|---|---|
| progress | number | 上傳進(jìn)度百分比 |
| totalBytesSent | number | 已經(jīng)上傳的數(shù)據(jù)長(zhǎng)度,單位 Bytes |
| totalBytesExpectedToSend | number | 預(yù)期需要上傳的數(shù)據(jù)總長(zhǎng)度,單位 Bytes |
示例代碼:
const uploadTask = wx.uploadFile({
url: 'http://example.weixin.qq.com/upload', //僅為示例,非真實(shí)的接口地址
filePath: tempFilePaths[0],
name: 'file',
formData:{
'user': 'test'
},
success: function(res){
var data = res.data
//do something
}
})
uploadTask.onProgressUpdate((res) => {
console.log('上傳進(jìn)度', res.progress)
console.log('已經(jīng)上傳的數(shù)據(jù)長(zhǎng)度', res.totalBytesSent)
console.log('預(yù)期需要上傳的數(shù)據(jù)總長(zhǎng)度', res.totalBytesExpectedToSend)
})
uploadTask.abort() // 取消上傳任務(wù)
Bug & Tip
tip: 最大并發(fā)限制是 10 個(gè)tip: 默認(rèn)超時(shí)時(shí)間和最大超時(shí)時(shí)間都是 60s
wx.downloadFile(OBJECT)
下載文件資源到本地??蛻舳酥苯影l(fā)起一個(gè)HTTP GET請(qǐng)求,返回文件的本地臨時(shí)路徑。
參數(shù)
Object object
| 屬性 | 類型 | 默認(rèn)值 | 必填 | 說(shuō)明 | 最低版本 |
|---|---|---|---|---|---|
| url | string | 是 | 下載資源的 url | ||
| header | Object | 否 | HTTP 請(qǐng)求的 Header,Header 中不能設(shè)置 Referer | ||
| timeout | number | 否 | 超時(shí)時(shí)間,單位為毫秒 | 2.10.0 | |
| filePath | string | 否 | 指定文件下載后存儲(chǔ)的路徑 (本地路徑) | 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)用成功、失敗都會(huì)執(zhí)行) |
object.success 回調(diào)函數(shù)
參數(shù)
Object res
| 屬性 | 類型 | 說(shuō)明 | 最低版本 |
|---|---|---|---|
| tempFilePath | string | 臨時(shí)文件路徑 (本地路徑)。沒(méi)傳入 filePath 指定文件存儲(chǔ)路徑時(shí)會(huì)返回,下載后的文件會(huì)存儲(chǔ)到一個(gè)臨時(shí)文件 | |
| filePath | string | 用戶文件路徑 (本地路徑)。傳入 filePath 時(shí)會(huì)返回,跟傳入的 filePath 一致 | |
| statusCode | number | 開(kāi)發(fā)者服務(wù)器返回的 HTTP 狀態(tài)碼 | |
| profile | Object | 網(wǎng)絡(luò)請(qǐng)求過(guò)程中一些調(diào)試信息 | 2.10.4 |
res.profile 的結(jié)構(gòu)
| 屬性 | 類型 | 說(shuō)明 |
|---|---|---|
| redirectStart | number | 第一個(gè) HTTP 重定向發(fā)生時(shí)的時(shí)間。有跳轉(zhuǎn)且是同域名內(nèi)的重定向才算,否則值為 0 |
| redirectEnd | number | 最后一個(gè) HTTP 重定向完成時(shí)的時(shí)間。有跳轉(zhuǎn)且是同域名內(nèi)部的重定向才算,否則值為 0 |
| fetchStart | number | 組件準(zhǔn)備好使用 HTTP 請(qǐng)求抓取資源的時(shí)間,這發(fā)生在檢查本地緩存之前 |
| domainLookupStart | number | DNS 域名查詢開(kāi)始的時(shí)間,如果使用了本地緩存(即無(wú) DNS 查詢)或持久連接,則與 fetchStart 值相等 |
| domainLookupEnd | number | DNS 域名查詢完成的時(shí)間,如果使用了本地緩存(即無(wú) DNS 查詢)或持久連接,則與 fetchStart 值相等 |
| connectStart | number | HTTP(TCP) 開(kāi)始建立連接的時(shí)間,如果是持久連接,則與 fetchStart 值相等。注意如果在傳輸層發(fā)生了錯(cuò)誤且重新建立連接,則這里顯示的是新建立的連接開(kāi)始的時(shí)間 |
| connectEnd | number | HTTP(TCP) 完成建立連接的時(shí)間(完成握手),如果是持久連接,則與 fetchStart 值相等。注意如果在傳輸層發(fā)生了錯(cuò)誤且重新建立連接,則這里顯示的是新建立的連接完成的時(shí)間。注意這里握手結(jié)束,包括安全連接建立完成、SOCKS 授權(quán)通過(guò) |
| SSLconnectionStart | number | SSL建立連接的時(shí)間,如果不是安全連接,則值為 0 |
| SSLconnectionEnd | number | SSL建立完成的時(shí)間,如果不是安全連接,則值為 0 |
| requestStart | number | HTTP請(qǐng)求讀取真實(shí)文檔開(kāi)始的時(shí)間(完成建立連接),包括從本地讀取緩存。連接錯(cuò)誤重連時(shí),這里顯示的也是新建立連接的時(shí)間 |
| requestEnd | number | HTTP請(qǐng)求讀取真實(shí)文檔結(jié)束的時(shí)間 |
| responseStart | number | HTTP 開(kāi)始接收響應(yīng)的時(shí)間(獲取到第一個(gè)字節(jié)),包括從本地讀取緩存 |
| responseEnd | number | HTTP 響應(yīng)全部接收完成的時(shí)間(獲取到最后一個(gè)字節(jié)),包括從本地讀取緩存 |
| rtt | number | 當(dāng)次請(qǐng)求連接過(guò)程中實(shí)時(shí) rtt |
| estimate_nettype | string | 評(píng)估的網(wǎng)絡(luò)狀態(tài) slow 2g/2g/3g/4g |
| httpRttEstimate | number | 協(xié)議層根據(jù)多個(gè)請(qǐng)求評(píng)估當(dāng)前網(wǎng)絡(luò)的 rtt(僅供參考) |
| transportRttEstimate | number | 傳輸層根據(jù)多個(gè)請(qǐng)求評(píng)估的當(dāng)前網(wǎng)絡(luò)的 rtt(僅供參考) |
| downstreamThroughputKbpsEstimate | number | 評(píng)估當(dāng)前網(wǎng)絡(luò)下載的kbps |
| throughputKbps | number | 當(dāng)前網(wǎng)絡(luò)的實(shí)際下載kbps |
| peerIP | string | 當(dāng)前請(qǐng)求的IP |
| port | number | 當(dāng)前請(qǐng)求的端口 |
| socketReused | boolean | 是否復(fù)用連接 |
| sendBytesCount | number | 發(fā)送的字節(jié)數(shù) |
| receivedBytedCount | number | 收到字節(jié)數(shù) |
返回值
DownloadTask
基礎(chǔ)庫(kù) 1.4.0 開(kāi)始支持,低版本需做 兼容處理。
一個(gè)可以監(jiān)聽(tīng)下載進(jìn)度變化事件和取消下載的對(duì)象
示例代碼:
wx.downloadFile({
url: 'https://example.com/audio/123', //僅為示例,并非真實(shí)的資源
success (res) {
// 只要服務(wù)器有響應(yīng)數(shù)據(jù),就會(huì)把響應(yīng)內(nèi)容寫入文件并進(jìn)入 success 回調(diào),業(yè)務(wù)需要自行判斷是否下載到了想要的內(nèi)容
if (res.statusCode === 200) {
wx.playVoice({
filePath: res.tempFilePath
})
}
}
})DownloadTask
基礎(chǔ)庫(kù) 1.4.0 開(kāi)始支持,低版本需做 兼容處理。
一個(gè)可以監(jiān)聽(tīng)下載進(jìn)度變化事件,以及取消下載任務(wù)的對(duì)象
方法:
DownloadTask.abort()
基礎(chǔ)庫(kù) 1.4.0 開(kāi)始支持,低版本需做 兼容處理。
中斷下載任務(wù)
DownloadTask.offHeadersReceived(function callback)
基礎(chǔ)庫(kù) 2.1.0 開(kāi)始支持,低版本需做 兼容處理。
取消監(jiān)聽(tīng) HTTP Response Header 事件
參數(shù)
function callback
HTTP Response Header 事件的回調(diào)函數(shù)
DownloadTask.offProgressUpdate(function callback)
基礎(chǔ)庫(kù) 2.1.0 開(kāi)始支持,低版本需做 兼容處理。
取消監(jiān)聽(tīng)下載進(jìn)度變化事件
參數(shù)
function callback
下載進(jìn)度變化事件的回調(diào)函數(shù)
DownloadTask.onHeadersReceived(function callback)
基礎(chǔ)庫(kù) 2.1.0 開(kāi)始支持,低版本需做 兼容處理。
監(jiān)聽(tīng) HTTP Response Header 事件。會(huì)比請(qǐng)求完成事件更早
參數(shù)
function callback
HTTP Response Header 事件的回調(diào)函數(shù)
參數(shù)
Object res
| 屬性 | 類型 | 說(shuō)明 |
|---|---|---|
| header | Object | 開(kāi)發(fā)者服務(wù)器返回的 HTTP Response Header |
DownloadTask.onProgressUpdate(function callback)
基礎(chǔ)庫(kù) 1.4.0 開(kāi)始支持,低版本需做 兼容處理。
監(jiān)聽(tīng)下載進(jìn)度變化事件
參數(shù)
function callback
下載進(jìn)度變化事件的回調(diào)函數(shù)
參數(shù)
Object res
| 屬性 | 類型 | 說(shuō)明 |
|---|---|---|
| progress | number | 下載進(jìn)度百分比 |
| totalBytesWritten | number | 已經(jīng)下載的數(shù)據(jù)長(zhǎng)度,單位 Bytes |
| totalBytesExpectedToWrite | number | 預(yù)期需要下載的數(shù)據(jù)總長(zhǎng)度,單位 Bytes |
新聞名稱:創(chuàng)新互聯(lián)小程序教程:微信小程序API 上傳、下載
轉(zhuǎn)載源于:http://www.5511xx.com/article/codeije.html


咨詢
建站咨詢
