微信小程序下载文件和转发文件给好友总结

简介: 微信小程序下载文件和转发文件给好友总结

这段时间公司让我负责小程序的一些功能开发,回想上次开发小程序还是在上一次,这次开发小程序主要实现的功能就是转发文件给好友和下载文件,总结一下这次遇到的各种问题和解决方法。


下载文件


首先正常下载

        wx.downloadFile({
              url: 'https://img.haihaina.cn/月度支出表.xls', 
              success(res) {
                console.log('downloadFile',res)
                const filePath = res.tempFilePath
                wx.openDocument({
                  filePath: filePath,
                  success: function(ress) {
                    console.log('打开文档成功',ress)
                  },
                  fail: function(err) {
                    console.log('保存失败:', err)
                  }
                })
              }
            })

   

通过这种下载打开的文件是这样的

2d9760b86d22465cb2af72670b037d31.png


没错,名字乱码


这里经过各种查阅解决名字乱码问题

cbb5ad9806b74eeb97f28eee91d8beda.png


       wx.downloadFile({
              url: 'https://img.haihaina.cn/月度支出表.xls', 
              filePath: wx.env.USER_DATA_PATH + '/'+ '自定义名字.xlsx',
              success(res) {
                console.log('downloadFile',res)
                const filePath = res.tempFilePath
                wx.openDocument({
                  filePath: filePath,
                  fileType: 'xlsx',
                  success: function(ress) {
                    console.log('打开文档成功',ress)
                  },
                  fail: function(err) {
                    console.log('保存失败:', err)
                  }
                })

   

b2ffd1f52600486095087a881570552d.png


这里打开可以看到就是我们自己定义的文件名


分享


分享文件给好友


这里分享文件给好友也是首先将文件下载下来然后在调用 wx.shareFileMessage

    wx.downloadFile({
      url: 'https://img.haihaina.cn/月度支出表.xls', // 下载url
      success (res) {
        console.log('ressss',res)
        if(res.statusCode == 200) {
          console.log('res.statusCode',res)
            // that.openFileEvs(res)
            wx.shareFileMessage({
              filePath: res.tempFilePath,
              success(data) {
                console.log('转发成功!!!',data)
              },
              fileName:'自定义文件名字',
              fail: console.error,
            })
        }
      },
      fileName:'导出病例',
      fail: console.error,
    })

注意:


这里 wx.shareFileMessage只能在真机上才能进行调试,否则报错。

然后通过真机调试分享

c9a70e11b2aa42dab864b077143973af.png


发现文件名没有后缀。也无法打开。


解决办法给文件名加上后缀

    wx.downloadFile({
      url: 'https://img.haihaina.cn/月度支出表.xls', // 下载url
      success (res) {
        console.log('ressss',res)
        if(res.statusCode == 200) {
          console.log('res.statusCode',res)
            // that.openFileEvs(res)
            wx.shareFileMessage({
              filePath: res.tempFilePath,
              success(data) {
                console.log('转发成功!!!',data)
              },
              fileName:'自定义文件名字.xlsx',
              fail: console.error,
            })
        }
      },
      fileName:'导出病例',
      fail: console.error,
    })


2b84c73836b847e9aa020b54d95d5c3c.png


这样即可解决文件名无后缀的情况

bb733aa6d3c541c3acd0bff9fee5f0b1.png


但是通过手机打开可以发现用户点开分享之后的名字还是会乱码

c090365e1850465eb5ff9da522607461.png


还需要改善

7cdda178d8a04fa6a9a703c00ab7b84b.png


    wx.downloadFile({
      url: url, // 下载url
      filePath: wx.env.USER_DATA_PATH+ '自定义文件名字.xlsx',
      success (res) {
        console.log('ressss',res)
        if(res.statusCode == 200) {
          console.log('res.statusCode',res)
            // that.openFileEvs(res)
            wx.shareFileMessage({
              filePath: res.tempFilePath,
                fileType: 'xlsx',
              success(data) {
                console.log('转发成功!!!',data)
              },
              fileName:'自定义文件名字.xlsx',
              fail: console.error,
            })
        }
      },
      fileName:'导出病例',
      fail: console.error,
    })

这次可以看到

509d3c8b7b5344b7bb0fe0f16aa259e1.png


转发用户的文件用户打开也是自定义的名字了


总结一下


首先小程序下载文件可以在wx.downloadFile内部新增一个


filePath: wx.env.USER_DATA_PATH + '/'+'文件名字+后缀'


然后openDocument需要加上fileType 对应你的文件后缀


分享文件需要在wx.shareFileMessagefileName 最后加一个文件后缀


这样分享出去用户打开之后名字还是会乱码 需要在我们自己下载分享之前在wx.downloadFile


同样加上 filePath: wx.env.USER_DATA_PATH + '/'+'文件名字+后缀'


然后openDocument需要加上fileType 对应你的文件后缀


关于微信小程序的下载 / 分享文件大概就这些了  


关于ios


如果你转发或者下载的时候发现ios不能正常打开文件,请更改文件的后缀名 。上文使用的xlsx在测试中发现不能正常打开,后经过修改变成xls就可以正常打开文件

相关文章
|
4月前
|
小程序 PHP 图形学
热门小游戏源码(Python+PHP)下载-微信小程序游戏源码Unity发实战指南​
本文详解如何结合Python、PHP与Unity开发并部署小游戏至微信小程序。涵盖技术选型、Pygame实战、PHP后端对接、Unity转换适配及性能优化,提供从原型到发布的完整指南,助力开发者快速上手并发布游戏。
|
6月前
|
API 数据安全/隐私保护 开发者
企业微信自动加好友软件,导入手机号批量添加微信好友,python版本源码分享
代码展示了企业微信官方API的合规使用方式,包括获取access_token、查询部门列表和创建用户等功能
|
7月前
|
Java API
wxid添加微信好友工具,免费微信wxid转换器二维码,jar实现仅供学习参考
本项目实现微信ID与wxid的转换及二维码生成功能,核心逻辑基于ZXing库完成QR编码,支持文件批量导入导出。
|
6月前
|
数据安全/隐私保护 开发者 安全
微信加5000好友软件有吗?是不是真的
作为一名长期关注社交平台技术发展的开发者,最近经常被问到"微信加5000好友软件"是否真实存在的问题
|
7月前
|
编解码 Java
wxid加微信好友工具,二维码转换工具,微信号转wxid插件【仅供学习参考】
本工具基于JAVA实现微信ID转换功能,支持wxid、微信号与二维码之间的相互转换。开发中使用ZXing库(版本3.5.1)完成二维码编解码,并设计核心类`WxidConverter`实现关键转换逻辑。
|
6月前
|
移动开发 PHP 数据安全/隐私保护
抖音一键跳转微信加好友
抖音跳转微信加好友的技术实现方案 1. 技术背景与需求分析
|
6月前
|
移动开发 安全 数据安全/隐私保护
怎么通过链接跳转加微信好友
深度链接技术在微信好友添加中的应用 技术背景
|
7月前
|
Android开发
微信加好友脚本自动,手机号自动添加定时,可群聊通讯录添加
这是一款基于 AutoJS 的微信自动化脚本,适用于 Android 7.0+ 系统,实现定时批量添加好友功能。采用分层设计(主控模块+功能模块+配置模块)