溫馨提示×

溫馨提示×

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

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

微信小程序中怎么實(shí)現(xiàn)拍照或從相冊選取圖片上傳

發(fā)布時(shí)間:2022-04-18 16:51:39 來源:億速云 閱讀:1253 作者:iii 欄目:開發(fā)技術(shù)

這篇文章主要講解了“微信小程序中怎么實(shí)現(xiàn)拍照或從相冊選取圖片上傳”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“微信小程序中怎么實(shí)現(xiàn)拍照或從相冊選取圖片上傳”吧!

發(fā)現(xiàn)問題

老大要讓我實(shí)現(xiàn)下載xls文件的功能,我想了想:我好像不太會(huì)耶!

但是我們之前寫的一個(gè)頁面有一個(gè)下載xls的功能,那我就CV大法,嘿嘿嘿。

當(dāng)我點(diǎn)擊下載按鈕的那一刻,控制臺(tái)紅了...,心想MMP

一樣的代碼不行,那個(gè)就能下載,我CV后變質(zhì)了?

報(bào)錯(cuò)原因:TypeError: Failed to execute 'createObjectURL' on 'URL': Overload resolution failed.

我看了看網(wǎng)絡(luò)請求,老大說傳過來的數(shù)據(jù)沒問題,可能是數(shù)據(jù)太大?

微信小程序中怎么實(shí)現(xiàn)拍照或從相冊選取圖片上傳

我看了好多好多好多好多博客,他們解決方案是對(duì)傳過來的數(shù)據(jù)進(jìn)行Blob處理后,那咱們試一試吧!

let blob = new Blob([res], {type: 'application/vnd.ms-excel'})
const url = window.URL.createObjectURL(res)

唉?可以下載了!但是表格內(nèi)的數(shù)據(jù)都是亂碼......

我這一想不行呀!都來看到某位掘友的博客,他的做法是在請求頭加responseType: 'blob'

最終我成功的解決了這個(gè)問題,嗚嗚嗚...

總結(jié)

在做大數(shù)據(jù)文件下載時(shí),在請求頭中加入 responseType: 'blob',就可以解決下載和文件內(nèi)亂碼的問題了。

下面附上代碼

// 文件下載 ——  <a> 標(biāo)簽方法下載
download(row.logUserId).then(res => {
  if (!res) {return}
	
  // 這里的blob處理可做可不做,我試了下,不做blob也可以下載且不亂碼
  let blob = new Blob([res], {type: 'application/vnd.ms-excel'})

  const url = window.URL.createObjectURL(blob)
  const link = document.createElement('a')

  link.style.display = 'none'
  link.href = url

  // download 屬性定義了下載鏈接的地址而不是跳轉(zhuǎn)路徑
  link.setAttribute('download', row.reportExcelLog.fileName+'.xls')
  document.body.appendChild(link)

  link.click()

  window.URL.revokeObjectURL(link.href) //釋放url
  document.body.removeChild(link)//釋放標(biāo)簽
})
// 請求
export function download(logUserId) {
  return request({
    url: prefix + '/download/by/log/user/id',
    method: 'post',
    data: {
      logUserId
    },
    // 這一步至關(guān)重要
    responseType: 'blob'
  })
}

感謝各位的閱讀,以上就是“微信小程序中怎么實(shí)現(xiàn)拍照或從相冊選取圖片上傳”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對(duì)微信小程序中怎么實(shí)現(xiàn)拍照或從相冊選取圖片上傳這一問題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是億速云,小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!

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

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

AI