微信小程序下载zip压缩包后解压,并且打开文件查看的内容

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

        在开发pc端后台管理系统的时候,经常会遇到这样的需求:下载zip到本地,然后用户双击压缩包,并借助电脑端的压缩软件打开压缩包,就可以查看里面的word、excel、pdf文件里面的内容。(这种需求,毫无疑问,对于我们前端开发工程师来说,已经是习以为常了)。

        最近我在开发微信小程序的项目。后端和我说,下载zip的逻辑可以效仿pc端的逻辑。在微信小程序里,下载zip压缩包后解压,并且查看里面文件的内容,这个需求我没有做过。于是,我便查阅官网资料,实现了这个效果。

1、预备知识:

  1. 需要了解微信小程序的文件系统
  2. 需要了解FileSystemManager文件管理器的使用,可通过wx.getFileSystemManager()获取
  3. 需要了解wx.openDocument()方法是可以打开word、excel、pdf等文件

2、实现思路:

  1. 将压缩包下载到 “本地临时文件”
  2. 将 “本地临时文件” 解压到 “本地用户文件”
  3. 在 “本地用户文件” 的目录中,获取里面刚刚已解压的文件名称(.word,.excel,.pdf等)
  4. 将名称渲染到界面
  5. 点击界面的文件名称,即刻打开对应的文件

3、实现代码

        index.wxml

<view>
  <view wx:for="{{files}}" wx:key="unique" data-item="{{ item }}" bindtap="open">{{ item }}</view>
</view>

        index.js

Page({ 
  data: { 
    files: []
  }, 
  onLoad() {
    const fs = wx.getFileSystemManager()

    // 1、将压缩包下载到 “本地临时文件”
    wx.downloadFile({
      url: 'http://localhost/1.zip', // 后端给你的下载zip的接口
      success: res => {
        unzip(res.tempFilePath)
      },
    })

    // 2、将 “本地临时文件” 解压到 “本地用户文件” ,并且目录命名为yyy(可以随便啦)
    const unzip = filePath => {
      fs.unzip({
        zipFilePath: filePath,
        targetPath: wx.env.USER_DATA_PATH + `/yyy`,
        success: () => {
          readdir()
        }
      })
    }

    // 3、在 “本地用户文件” 的目录名称为yyy中,获取里面刚刚已解压的文件名称(.word,.excel,.pdf)
    const readdir = () => {
      fs.readdir({
        dirPath: wx.env.USER_DATA_PATH + `/yyy`,
        success: res => {
          this.setData({ 
            files: res.files
          })
        }
      })
    }
  },
  // 点击
  open(ev){
    let { target: { dataset: { item } }  } = ev
    wx.openDocument({
      filePath: wx.env.USER_DATA_PATH + `/yyy/${item}`,
      showMenu: true
    });
  }
 }) 

4、最终效果

        点击可打开pdf文件。

微信小程序下载zip压缩包后解压,并且打开文件查看的内容

         

        其实,“解压zip压缩包”这个操作可以交给后端来解压,只是看看你的后端有没有空。欢迎阅读本篇文章,希望本篇文章能对您有帮助。如果您有更好的解决方案,欢迎留言评论!

        文章来源地址https://www.toymoban.com/news/detail-482986.html

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

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

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

相关文章

  • Linux zip命令压缩与解压

    1、unzip windows常见的压缩包有rar和zip格式,如果要将压缩包上传到Linux上再解压,就要使用unzip命令。以下是unzip常见命令: 没有unzip可以使用yum安装 2、zip 如果需要将Linux下的文件传输到Windows上,可以使用zip命令 压缩命令 常用参数:

    2024年02月10日
    浏览(37)
  • .net rar zip压缩包解压

    引入  SharpCompress https://download.csdn.net/download/weixin_42020830/87737306 string targetFile=\\\"c:\\\\test.zip\\\"; string zipFile=\\\"c:\\\\test\\\";  using (Stream stream =System.IO.File.OpenRead(targetFile))                     {                         var reader = ReaderFactory.Open(stream);                         while (r

    2024年02月01日
    浏览(38)
  • Linux上实现分片压缩及解压分片zip压缩包 - 及zip、unzip命令详解

    👨‍🎓 博主简介   🏅云计算领域优质创作者   🏅华为云开发者社区专家博主   🏅阿里云开发者社区专家博主 💊 交流社区: 运维交流社区 欢迎大家的加入! 🐋 希望大家多多支持,我们一起进步!😄 🎉如果文章对你有帮助的话,欢迎 点赞 👍🏻 评论 💬 收藏

    2024年02月11日
    浏览(33)
  • linux中zip分卷压缩和解压遇到的错误

    网上搜索的解决办法如下(我执行时报错): 但是,当我执行的时候会报以下错误。 报错的大概意思是,合并的过程中导致头部偏移异常。 我的解决办法如下: 至此问题解决

    2024年02月03日
    浏览(47)
  • Java的zip文件压缩与解压:ZipInputStream,ZipOutputStream

       用ZipOutputStream来压缩一个文件夹时,要搭配ZipEntry来使用。ZipEntry是用来创建压缩文件的。    举个例子,向压缩文件中添加一个文件的代码: 如下图:    在创建ZipEntry对象时可以指定文件在压缩包的位置:new ZipEntry(“second-dirsecond-01.txt”)    在使用ZipOutputStrea

    2024年02月16日
    浏览(33)
  • Python实现rar、zip和7z文件的压缩和解压

    一、7z压缩文件的压缩和解压 1、安装py7zr 我们要先安装 py7zr 第三方库: 如果python环境有问题,执行上面那一条安装语句老是安装在默认的python环境的话,我们可以执行下面这条语句,将第三方库安装在项目的虚拟环境中: 2、解压7z文件 3、压缩成7z文件 二、rar压缩文件的压

    2024年02月07日
    浏览(42)
  • zip压缩包太大无法用unzip成功解压(保姆级)

    使用unzip命令解压zip时,出现报错: (please check that you have transferred or created the zipfile in the appropriate BINARY mode and that you have compiled UnZip properly) 是因为压缩包太大了,unzip命令解压不了,选择使用7za命令进行解压,如果没有7za命令,则按照如下方式进行安装。 1.首先进入网址 h

    2023年04月13日
    浏览(36)
  • Java 压缩多个文件为zip包(中间不生成临时文件,直接压缩为zip二进制流),以及解压zip包二进制流为文件

    这篇博客将提供俩种方法, 提前生成要压缩的多个文件,然后读取文件夹多层或一层去遍历压缩zip包 直接用原始文件名称及二进制流,压缩返回zip包二进制流,中间不生成冗余文件; 很明显方法2更优一些; 解压zip文件或者zip文件流验证; 压缩俩个文件到zip包,并分别解析

    2024年02月06日
    浏览(43)
  • [python]批量解压文件夹下所有压缩包(rar、zip、7z)

            在文件夹作用包含许多压缩包的时候,解压起来就很费时费力,尤其是在文件夹还存在嵌套的情况下,解压起来就更麻烦了。Franpper今天给大家带来递归遍历指定路径下的所有文件和文件夹,批量解压所有压缩包的方法,帮大家一键解压。         常见的压缩包格

    2024年02月09日
    浏览(46)
  • uniapp微信小程序下载文件并打开

    IOS端兼容性代码 1、使用encodeURI进行文件名编码。 2、需要传fileType,安卓端可以不传。

    2024年02月10日
    浏览(33)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包