微信小程序保存文件到本地并查询


wx.downloadFile
下载文件资源到本地。客户端直接发起一个 HTTPS GET 请求,返回文件的本地临时路径 (本地路径),

  wx.downloadFile({
  url: 'https://example.com/audio/123', //仅为示例,并非真实的资源
  success (res) {
    // 只要服务器有响应数据,就会把响应内容写入文件并进入 success 回调,业务需要自行判断是否下载到了想要的内容
    if (res.statusCode === 200) {
      wx.playVoice({
        filePath: res.tempFilePath
      })
    }
  }
})

使用wx.downloadFile会返回一个临时路径 根据微信小程序提供的api wx.saveFile(Object object) 方法保存到本地

wx.chooseImage({
  success: function(res) {
    const tempFilePaths = res.tempFilePaths
    wx.saveFile({
      tempFilePath: tempFilePaths[0],
      success (res) {
        const savedFilePath = res.savedFilePath
      }
    })
  }
})

发现在本地文件加中找不到所下载的文件于是输出文件临时地址路径,显示路径是“wxfile://store_543536f534.pdf”。科室在手机内存管理中查询不到 网上搜索发现文件存储在 (手机\内部存储\tencent\MicroMsg\wxanewfiles\一个很长名字的文件夹\)这个文件夹下面,科室去查找还是没有找到我下载文档
在网上寻找 找到一篇解决文章结合自身代码调试成功

var filePath = res.tempFilePath;
//#ifdef MP-WEIXIN
const FileSystemManager = wx.getFileSystemManager()
FileSystemManager.saveFile({//下载成功后保存到本地
  tempFilePath: res.tempFilePath,
  filePath: wx.env.USER_DATA_PATH + "/" + name+'.pdf',
  success(res2) {
	console.log(res2)
	console.log(wx.env.USER_DATA_PATH)
	if (res2.errMsg == 'saveFile:ok') {
		uni.showToast({
			title: '文件保存成功',
			icon: 'none'
		})
	  // uni.showModal({
	  // 	title: '文件保存成功,路径为:',
	  // 	content: res.savedFilePath
	  // })
	}else{
	  uni.showToast({
	  	title: '文件下载报错了',
	  	icon: 'none'
	  })
	}
  },
  fail() {
	uni.showToast({
		title: '文件下载报错了',
		icon: 'none'
	})
  }
})

参考文章来源微信小程序保存文件到本地