• 微信小程序实现pdf,word等格式文件上传


    目前微信只支持从聊天记录里面获取文件

    一.前言

       目前微信提供了一个接口 wx.chooseMessageFile 它能让用户从聊天记录里面选择一个或者多个文件,然后返回它的一些信息,列入文件的path地址,文件名,文件的大小等.

      获取这些信息再结合微信的上传接口wx.uploadFile,即可实现文件上传.

    二.具体实现

         首先需要一个按钮来调用wx.chooseMessageFile.

     wx.chooseMessageFile({
          count: 1,     //能选择文件的数量
          type: 'file',   //能选择文件的类型,我这里只允许上传文件.还有视频,图片,或者都可以
          success(res) { 
            var size = res.tempFiles[0].size;
            var filename = res.tempFiles[0].filename;
            var newfilename = filename + "";  
            
        if (size > 4194304||newfilename.indexOf(".pdf")==-1){ //我还限制了文件的大小和具体文件类型
              wx.showToast({
                title: '文件大小不能超过4MB,格式必须为pdf!',
                icon: "none",
                duration: 2000,
                mask: true
              })
            }else{
              that.setData({
              path: res.tempFiles[0].path, //将文件的路径保存在页面的变量上,方便 wx.uploadFile调用
              filename: filename              //渲染到wxml方便用户知道自己选择了什么文件
              })
            }
          }
        })

    这样在这里就保存了文件的路径和名称

     data: {
        path:'',
        filename:''
      },
    
    

    然后等用户进行提交的时候,再调用上传的接口

     wx.uploadFile({
                      url: serverUrl          //上传的路径
                      filePath: that.data.path,   //刚刚在data保存的文件路径
                      name: 'file',            //后台获取的凭据
                      success() {          
                        wx.showToast({          //做个提示或者别的操作
                          title: '',
                          icon: "none",
                          duration: 5000,
                          mask: true,
                          success: function (res) {
                           
                          }
                        })
    }
    })

    这样前段就完成实现了

    后台获取的文件是一个.tmp结尾的临时文件

    然后就可以通过IO流将文件保存到你想保存的位置上去,就可以了.

    三.结尾

      如果觉得这篇文章对你有用的话,不要忘记评论点赞哦!

  • 相关阅读:
    jquery.autocomplete 使用解析
    《SEO实战密码》
    Thinkphp 生成的验证码不显示问题解决
    css去除li的小圆点
    css隐藏input边框阴影
    HBuilde 申请密钥证书
    请求筛选模块被配置为拒绝包含 hiddenSegment 节的 URL 中的路径
    js 判断屏幕下拉上滑操作
    gis 从WGS84转百度
    GIS个坐标系转换
  • 原文地址:https://www.cnblogs.com/haizhongdenta/p/11496316.html
Copyright © 2020-2023  润新知