微信小程序文件下载两种方式

这篇具有很好参考价值的文章主要介绍了微信小程序文件下载两种方式。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1. 基本url方式下载(自定义下载文件名称)
  downloadDailyYear: function() {
    util.get(api.downloadDailyYear).then(function(res) { // 自定义get请求,可忽略
      if (res.code == 200) {
        var fileName = res.data.substring(res.data.lastIndexOf("/") + 1, res.data.indexOf("."));
        wx.downloadFile({
          url: api.appUrl + res.data,     
          // 1. 必须带有这个wx.env.USER_DATA_PATH,表示存储在用户本地 !!!
          // fileName表示自定的文件名称
          // 实际在PC端调试存储位置为类似 C:\Users\SJshe\AppData\Local\微信开发者工具\User Data\WeappFileSystem\o6zAJs3c0u3SeBVn_9MUgG6UZJ1M\wx2efdf4edd8bccb88
          filePath: wx.env.USER_DATA_PATH + "/" + fileName,
          success: function (res) {
            if (res.statusCode === 200) {
              wx.openDocument({
                filePath: res.filePath,
                fileType: ['xlsx'], // 2. 这个必须写合法类型,不然下载不了(个人认为官方应该特别说明) !!!
                success: function (res) {
                  console.log('打开文档成功')
                },
                fail: function(e) {
                  console.log(e.errMsg);
                }
              })
            }
          },
          fail: function(e) { // 强烈建议打印失败原因,便于排查
            console.log(e.errMsg);
          }
        });
      }
    });
  },
2. 基于后台返回流的方式下载
@GetMapping(value = "/downloadDailyYear")
public BaseResponse<byte[]> downloadDailyYear(HttpSession session, @RequestParam String id, 
		@RequestParam @DateTimeFormat(iso = ISO.DATE) Date startDate, 
		@RequestParam @DateTimeFormat(iso = ISO.DATE) Date endDate) {
}
public class BaseResponse<T> {
    private String code;
    private String message;
    private T data;
    ...
}
downloadDailyYear: function () {
    var name = '';
    wx.getStorage({
      key: 'userInfo',
      success(res) {
        name += res.data.name + res.data.employeeNo;
      }
    })
    
    var year = new Date().getFullYear();
    util.get(api.downloadDailyYear, {
      'id': wx.getStorageSync('userId'),
      'startDate': year + "-" + "01-01", 
      'endDate': year + "-" + "12-31"
    }).then(function (res) {
      if (res.code == 200) {
      	// 1. 必须带有这个wx.env.USER_DATA_PATH,表示存储在用户本地 !!!
        var filePath = wx.env.USER_DATA_PATH + '/' + year + '工作周报-' + name;
        FileSystemManager.writeFile({
          filePath: filePath,
          data: res.data,
          encoding: 'base64', // 2. base64解密写入, 后台返回的byte[]数组是经过base64编码的,其他方式写入文件打开格式不对
          success: function(res) {
            wx.openDocument({
              filePath: wx.env.USER_DATA_PATH + '/' + year + '工作周报-' + name,
              fileType: ['xlsx'], // 3. 这个必须写合法类型,不然下载不了 !!!
              success: function (res) {
                console.log('打开文档成功')
              },
              fail: function (e) {
                console.log(e.errMsg);
              }
            })
          },
          fail: function (e) {
            console.log(e.errMsg);
          }
        });
      }
    });
  },

欢迎关注微信公众号算法小生文章来源地址https://www.toymoban.com/news/detail-539610.html

到了这里,关于微信小程序文件下载两种方式的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【微信小程序】下载文件到本地并使用

    1.使用小程序文件管理API (wx.getFileSystemManager()) 2.1 判断要下载的文件是否存在(accessSync)于本地 通过 try 去判断 进入catch则 没有存在于本地 2.2 通过wx.downloadFile  设置filePath 下载文件保存本地 3.读取(readFileSync)本地文件并使用 catch 处理未加载到数据 重新 wx.downloadFile  设置

    2024年02月09日
    浏览(166)
  • 微信小程序,下载流文件并打开预览

      gopdf(e){     let that=this;     let pdfurl=e.currentTarget.dataset.pdfurl;     let file;     let tokenresult = wx.getStorageSync(\\\"tokenresult\\\");          console.log(pdfurl);     wx.request({       url:app.globalData.api.fileurl + `api/file/pdf/httppreview?httpfile=${pdfurl}`,       method: \\\"GET\\\",     

    2024年02月10日
    浏览(47)
  • 微信小程序文件相关操作(新建文件夹、下载、解压、读取等)

    wx.downloadFile()  //下载 wx.getFileSystemManager()  //获取小程序的文件管理器 FileSystemManager.unzip() //解压 FileSystemManager.readdir()  //读取文件夹 FileSystemManager.readFile()  //读取文件 FileSystemManager.access() //判断文件/目录是否存在 FileSystemManager.mkdir()  //创建文件夹 index.js 在 onload 中获取 F

    2024年02月15日
    浏览(50)
  • springboot+微信小程序实现文件上传下载(预览)pdf文件

    实现思路: 选择文件 wx.chooseMessageFile ,官方文档: https://developers.weixin.qq.com/miniprogram/d e v/api/media/image/wx.chooseMessageFile.html 上传文件 `wx,uploadFile` , 官方文档:https://developers.weixin.qq.com/miniprogram/dev/api/network/upload/wx.uploadFile.html 查看所有上传的pdf文件,显示在页面上 点击pdf文件

    2024年02月08日
    浏览(76)
  • React下载文件的两种方式

    React下载文件的两种方式 - 代码先锋网 不知道有用没用看着挺整齐  没试过

    2024年02月12日
    浏览(41)
  • 微信小程序文件上传、下载和图片处理、文件操作API的使用

    这次按照我的理解来做这部分的笔记 首先,复习上节课所学的内容。就是网络请求api的使用  现在我有一个需求就是点击按钮实现获取后端返回的图片  先打开服务器  看一下我们要返回的图片路径  书写结构  看一下返回来的数据。是在data下的banners里。因此我们封装一下

    2024年02月04日
    浏览(49)
  • 微信小程序webview中嵌套uniapp时的文件下载问题

    前往闪闪の小窝以获得更好的 阅读 和 评论 体验 这个标题就已经够抽象了吧 本来用微信小程序的web-view去嵌套h5已经因为微信的种种限制(微信不希望你把微信小程序当做一个浏览器来用,它就是不想担责)导致微信登录、文件下载等种种微信特色问题已经很烦了,结果我们

    2024年04月12日
    浏览(49)
  • uniapp实现H5、APP、微信小程序三端文件下载

    这里我使用了uniapp官方api uni.downloadFile 和 uni.openDocument APP使用了uniapp官方api uni.downloadFile 和 uni.saveImageToPhotosAlbum(OBJECT) 还有 uni.openDocument H5的方法比较简单可以直接使用window.open方法下载。即: 如果你的浏览器支持预览,就会自动打开预览文件,然后自己手动下载文件,不支

    2024年02月16日
    浏览(73)
  • Uniapp基于微信小程序以及web端文件、图片下载,带在线文件测试地址

    一、效果 传送门 二、UI视图

    2024年02月13日
    浏览(45)
  • 实现微信小程序web-view内嵌H5中的下载功能(大文件切片下载)

    微信小程序的开发框架是uniapp,使用uniapp脚手架搭建,其中有页面是展示另一个小程序,在这个页面主体内容使用了标签将H5的页面内容展示,H5中有页面存放了下载的路径。点击下载按钮下载文件,或者预览文件让用户手动保存。 如果是pc端,下载用一个 a 标签就很容易,但

    2024年02月10日
    浏览(149)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包