舟山闪爸电子技术有限公司

微信小程序API上傳下載,將本地資源上傳到開發(fā)者服務(wù)器

wx.uploadFile(OBJECT)


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

OBJECT參數(shù)說明:

 

參數(shù) 類型 必填 說明
url String 開發(fā)者服務(wù)器url
filePath String 要上傳文件資源的路徑
name String 文件對應(yīng)的key , 開發(fā)者在服務(wù)器端通過這個(gè)key可以獲取到文件二進(jìn)制內(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)用成功、失敗都會(huì)執(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', //僅為示例,非真實(shí)的接口地址
      filePath: tempFilePaths[0],
      name:"file",
      formData:{
        "user":"test"
      }      success: function(res){        var data = res.data        //do something      }
    })
  }
})

 

返回值:

基礎(chǔ)庫 1.4.0 開始支持,低版本需做兼容處理

返回一個(gè)uploadTask對象,通過uploadTask,可監(jiān)聽上傳進(jìn)度變化事件,以及取消上傳任務(wù)。

uploadTask

uploadTask 對象的方法列表:

方法 參數(shù) 說明 最低版本
onProgressUpdate callback 監(jiān)聽上傳進(jìn)度變化 1.4.0
abort   中斷上傳任務(wù) 1.4.0

onProgressUpdate 返回參數(shù)說明:

參數(shù) 類型 說明
progress Number 上傳進(jìn)度百分比
totalBytesSent Number 已經(jīng)上傳的數(shù)據(jù)長度,單位 Bytes
totalBytesExpectedToSend Number 預(yù)期需要上傳的數(shù)據(jù)總長度,單位 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ù)長度', res.totalBytesSent)
    console.log('預(yù)期需要上傳的數(shù)據(jù)總長度', res.totalBytesExpectedToSend)
})

uploadTask.abort() // 取消上傳任務(wù)

Bug & Tip

  1. tip: 最大并發(fā)限制是 10 個(gè)
  2. tip: 默認(rèn)超時(shí)時(shí)間和最大超時(shí)時(shí)間都是 60s

wx.downloadFile(OBJECT)


下載文件資源到本地??蛻舳酥苯影l(fā)起一個(gè)HTTP GET請求,返回文件的本地臨時(shí)路徑。

OBJECT參數(shù)說明:

 

參數(shù) 類型 必填 必填
url String 下載資源的 url
header Object HTTP 請求 Header
success Function 下載成功后以 tempFilePath 的形式傳給頁面,res={tempFilePath:'文件的臨時(shí)路徑'}
fail Function 接口調(diào)用失敗的回調(diào)函數(shù)
complete Function 接口調(diào)用結(jié)束的回調(diào)函數(shù)(調(diào)用成功、失敗都會(huì)執(zhí)行)

 

注:文件的臨時(shí)路徑,在小程序本次啟動(dòng)期間可以正常使用,如需持久保存,需在主動(dòng)調(diào)用 wx.saveFile,在小程序下次啟動(dòng)時(shí)才能訪問得到。

示例代碼:

wx.downloadFile({
  url: 'http://example.com/audio/123', //僅為示例,并非真實(shí)的資源
  success: function(res) {
    wx.playVoice({
      filePath: res.tempFilePath
    })
  }
})

返回值:

基礎(chǔ)庫 1.4.0 開始支持,低版本需做兼容處理

返回一個(gè)downloadTask對象,通過downloadTask,可監(jiān)聽下載進(jìn)度變化事件,以及取消下載任務(wù)。

downloadTask

downloadTask 對象的方法列表:

方法 參數(shù) 說明 最低版本
onProgressUpdate callback 監(jiān)聽下載進(jìn)度變化 1.4.0
abort   中斷下載任務(wù) 1.4.0

onProgressUpdate 返回參數(shù)說明:

參數(shù) 類型 說明
progress Number 下載進(jìn)度百分比
totalBytesWritten Number 已經(jīng)下載的數(shù)據(jù)長度,單位 Bytes
totalBytesExpectedToWrite Number 預(yù)期需要下載的數(shù)據(jù)總長度,單位 Bytes

示例代碼:

const downloadTask = wx.downloadFile({
    url: 'http://example.com/audio/123', //僅為示例,并非真實(shí)的資源
    success: function(res) {
        wx.playVoice({
            filePath: res.tempFilePath
        })
    }
})

downloadTask.onProgressUpdate((res) => {
    console.log('下載進(jìn)度', res.progress)
    console.log('已經(jīng)下載的數(shù)據(jù)長度', res.totalBytesWritten)
    console.log('預(yù)期需要下載的數(shù)據(jù)總長度', res.totalBytesExpectedToWrite)
})

downloadTask.abort() // 取消下載任務(wù)

Bug & Tip

  1. tip: 最大并發(fā)限制是 10 個(gè)
  2. tip: 默認(rèn)超時(shí)時(shí)間和最大超時(shí)時(shí)間都是 60s
  3. tip: 網(wǎng)絡(luò)請求的 referer 是不可以設(shè)置的,格式固定為 https://servicewechat.com/{appid}/{version}/page-frame.html,其中{appid}為小程序的 appid,{version}為小程序的版本號(hào),版本號(hào)為 0 表示為開發(fā)版。
  4. tip: 6.5.3 以及之前版本的 iOS 微信客戶端header設(shè)置無效

更多微信小程序開發(fā)教程,可以關(guān)注。
【本站聲明】
  1、本站文章中所選用的圖片及文字來源于網(wǎng)絡(luò)以及用戶投稿,由于未聯(lián)系到知識(shí)產(chǎn)權(quán)人或未發(fā)現(xiàn)有關(guān)知識(shí)產(chǎn)權(quán)的登記,如有知識(shí)產(chǎn)權(quán)人并不愿意我們使用,如果有侵權(quán)請立即聯(lián)系。
  2、本網(wǎng)站不對文章中所涉及的內(nèi)容真實(shí)性、準(zhǔn)確性、可靠性負(fù)責(zé),僅系客觀性描述,如您需要了解該類商品/服務(wù)詳細(xì)的資訊,請您直接與該類商品/服務(wù)的提供者聯(lián)系。


KESION 科汛軟件

KESION 科汛軟件是國內(nèi)領(lǐng)先的在線教育軟件及私域社交電商軟件服務(wù)提供商,長期專注于為企業(yè)提供在線教育軟件及社交電商SaaS平臺(tái)解決方案。
公司核心產(chǎn)品云開店SaaS社交電商服務(wù)平臺(tái)、在線教育SaaS服務(wù)平臺(tái)、教育企業(yè)數(shù)字化SaaS云平臺(tái)、企微營銷助手、私有化獨(dú)立部署品牌網(wǎng)校和在線教育咨詢等。

KESION 不斷通過技術(shù)創(chuàng)新,提供產(chǎn)品和服務(wù),助力企業(yè)向數(shù)字化轉(zhuǎn)型,通過科技驅(qū)動(dòng)商業(yè)革新,讓商業(yè)變得更智慧!



▼點(diǎn)擊進(jìn)入科汛官網(wǎng)了解更多



上/下篇
  • 微信小程序API發(fā)起請求,wx.request發(fā)起請求

  • connectsocket是什么,微信小程序APIWebsocket

換一換相關(guān)推薦
精選內(nèi)容
熱點(diǎn)精選