收藏
回答

保存图片到相册时报类型不存在的错:fail inval file type?

原因是在调用wx.downloadFile时返回的tempFilepath文件路径的后缀为unknown,导致传给saveFile的路径也没有后缀,所以真机上保存图片失败

以下是我封装的代码:

import { BASE_URL } from '@/libs/config'


let url = ''
export default function downLoad (fileId{
  url = `${BASE_URL}/file/download/${fileId}`
  getSet()
}


function getSet () {
  uni.getSetting({
    success(res) => {
      if (res.authSetting['scope.writePhotosAlbum']) {
        // uni.downloadFile
        uni.downloadFile({
          url: url,
          header: {
            'Content-Type''png/jpeg'
          },
          success(infos) => {
            console.log('[get download file]', infos)
            saveFile(infos.tempFilePath)
          },
          fail() => {
            saveFail()
          }
        })
      } else {
        author()
      }
    },
    fail() => {
      saveFail()
    }
  })
}


function author () {
  uni.authorize({
    scope'scope.writePhotosAlbum',
    success(res) => {
      getSet()
    },
    fail() => {
      saveFail()
    }
  })
}


function saveFile (path{
  uni.saveImageToPhotosAlbum({
    filePath: path,
    success(res) => {
      uni.showToast('保存图片到相册成功')
      console.log('[download file success]', res)
    },
    fail(err) => {
      console.log('[got error when save file]', err)
      if (err.errMsg === "saveImageToPhotosAlbum:fail auth deny") {
        getSet()
      } else {
        saveFail()
      }
    }



回答关注问题邀请回答
收藏

1 个回答

  • songkl
    songkl
    2020-01-02

    有没有解决?

    我也有这个问题 是png图片。

    按照其他问题说的 response后台设置了content-type:image/png 依然某些机型是 unknown

    2020-01-02
    有用
    回复 3
    • 谭吉利
      谭吉利
      2020-01-02
      在响应头中加入header: {
                  'Content-Type': 'image/png/jpg'
                },
      2020-01-02
      回复
    • songkl
      songkl
      2020-01-02回复谭吉利
      唉 很尴尬 试了都不行
      2020-01-02
      回复
    • Wu
      Wu
      2020-06-28
      大佬,有解决的方案了吗?
      2020-06-28
      回复
登录 后发表内容
问题标签