微信小程序实现word,excell等文件下载

微信小程序实现word,excell等文件下载

  • 微信小程序
    • 复制文件到剪切板
    • fastfdfs
    • 后台编写
    • 小程序页面编写
    • 小程序js编写
    • 运行结果

微信小程序

设计了一个微信小程序,要实现word、excell、ppt、pdf等文件下载的功能并且能通过手机自带的文件查看器打开。但是查阅微信小程序提供api,发现能找到一个明显的api. wx.downloadFile() 仔细阅读该api后,发现只能实现保存临时文件,在小程序本次启动期间可以正常使用。这个可不能满足我的需求。仔细查询api后,发现有一个api,wx.saveFile()。仔细阅读该api的文档以后,发现只是将临时文件保存到长期缓存中,只能在微信小程序中能访问到,不能用手机自带的文件查看器查看到,看到这里,只想说一句,卒。仔细翻看微信的api,发信web-view组件可以通过模拟浏览器,看情况可以通过浏览器下载。但是,考虑到到可以使用模拟浏览器,那为何不用真的浏览器叻,可以借助手机浏览器直接下载文件啊。这样,整个思路就清晰了,从微信小程序获取文件路,再粘贴路径到浏览器地址栏通过浏览器实现文件下载。

复制文件到剪切板

查阅微信的api,发现有一个api, wx.setClipboardData(),该api可实现设置内容到剪切板。

fastfdfs

FastDFS是一个开源的轻量级分布式文件系统,它对文件进行管理,功能包括:文件存储、文件同步、文件访问(文件上传、文件下载)等,解决了大容量存储和负载均衡的问题。特别适合以文件为载体的在线服务,如相册网站、视频网站等等。
FastDFS为互联网量身定制,充分考虑了冗余备份、负载均衡、线性扩容等机制,并注重高可用、高性能等指标,使用FastDFS很容易搭建一套高性能的文件服务器集群提供文件上传、下载等服务。

这里我使用fastfdfs进行文件管理,可以通过文件路径进行文件高速下载、便捷的下载,而且不需要写多余的代码,十分方便。

后台编写

后台程序我是用的java编写。只需要从数据库获取文件路径就好,代码过于简单,这里省略。

小程序页面编写

<!--pages/Filedownload/index.wxml-->
<text>点击下面的复制链接 ,再打开浏览器粘贴地址即可下载:</text>
<view bindtap='download' class='url'>复制链接</view>

小程序js编写

 // pages/Filedownload/index.js
Page({

  /**
   * 页面的初始数据
   */
  data: {
     url:'',//文件路径
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
     var url=options.url;//从其他页面传过来文件路径
     this.setData({
       url:url,
     })
     console.log("接收的路径为");
     console.log(this.data.url);
  },

//复制文件路径到剪切板
  download:function(){
     
     var url=this.data.url;
    wx.setClipboardData({
      data: url,
      success: function (res) {
        // self.setData({copyTip:true}),
        wx.showModal({
          title: '提示',
          content: '复制成功',
          success: function (res) {
            if (res.confirm) {
              console.log('确定')
            } else if (res.cancel) {
              console.log('取消')
            }
          }
        })

      }
    })

  },
 
})

运行结果

微信小程序实现word,excell等文件下载_第1张图片
下载文件的截图不好截取,这里就省略。

你可能感兴趣的:(小程序,小程序,word,excell,文件下载)