溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

微信小程序怎么將本地資源上傳到開(kāi)發(fā)者服務(wù)器

發(fā)布時(shí)間:2022-03-07 10:55:29 來(lái)源:億速云 閱讀:1390 作者:iii 欄目:開(kāi)發(fā)技術(shù)

本文小編為大家詳細(xì)介紹“微信小程序怎么將本地資源上傳到開(kāi)發(fā)者服務(wù)器”,內(nèi)容詳細(xì),步驟清晰,細(xì)節(jié)處理妥當(dāng),希望這篇“微信小程序怎么將本地資源上傳到開(kāi)發(fā)者服務(wù)器”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來(lái)學(xué)習(xí)新知識(shí)吧。

wx.uploadFile(OBJECT)


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

OBJECT參數(shù)說(shuō)明:

參數(shù) 類(lèi)型 必填 說(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ù) 類(lèi)型 說(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

uploadTask 對(duì)象的方法列表:

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

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

參數(shù) 類(lèi)型 說(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

  1. tip: 最大并發(fā)限制是 10 個(gè)

  2. tip: 默認(rèn)超時(shí)時(shí)間和最大超時(shí)時(shí)間都是 60s

wx.downloadFile(OBJECT)


下載文件資源到本地??蛻?hù)端直接發(fā)起一個(gè)HTTP GET請(qǐng)求,返回文件的本地臨時(shí)路徑。

OBJECT參數(shù)說(shuō)明:

參數(shù) 類(lèi)型 必填 必填
url String 下載資源的 url
header Object HTTP 請(qǐng)求 Header
success Function 下載成功后以 tempFilePath 的形式傳給頁(yè)面,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í)才能訪(fǎng)問(wèn)得到。

示例代碼:

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

返回值:

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

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

downloadTask

downloadTask 對(duì)象的方法列表:

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

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

參數(shù) 類(lèi)型 說(shuō)明
progress Number 下載進(jìn)度百分比
totalBytesWritten Number 已經(jīng)下載的數(shù)據(jù)長(zhǎng)度,單位 Bytes
totalBytesExpectedToWrite Number 預(yù)期需要下載的數(shù)據(jù)總長(zhǎng)度,單位 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ù)長(zhǎng)度', res.totalBytesWritten)console.log('預(yù)期需要下載的數(shù)據(jù)總長(zhǎng)度', 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ò)請(qǐng)求的 referer 是不可以設(shè)置的,格式固定為 https://servicewechat.com/{appid}/{version}/page-frame.html,其中{appid}為小程序的 appid,{version}為小程序的版本號(hào),版本號(hào)為 0 表示為開(kāi)發(fā)版。

  4. tip: 6.5.3 以及之前版本的 iOS 微信客戶(hù)端header設(shè)置無(wú)效

讀到這里,這篇“微信小程序怎么將本地資源上傳到開(kāi)發(fā)者服務(wù)器”文章已經(jīng)介紹完畢,想要掌握這篇文章的知識(shí)點(diǎn)還需要大家自己動(dòng)手實(shí)踐使用過(guò)才能領(lǐng)會(huì),如果想了解更多相關(guān)內(nèi)容的文章,歡迎關(guān)注億速云行業(yè)資訊頻道。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI