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

时间: 2019-09-07阅读: 509标签: 文件

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


一.前言

目前微信提供了一个接口 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流将文件保存到你想保存的位置上去,就可以了.


吐血推荐

1.站长广告联盟: 整理了目前主流的广告联盟平台,如果你有流量,可以作为参考选择适合你的平台点击进入...

2.休闲娱乐: 直播/交友    优惠券领取   网页游戏   H5游戏

链接: http://www.fly63.com/article/detial/5254

vue 查看dist文件里的结构

优化打包后的代码,提高性能。方式一:report-json。package.json文件里加入以下命令,然后控制台运行 npm run report结果:会在dist文件夹里生成 report.json。里面有打包后每个文件的来源。

vue组件内部引入外部js文件

之所以要做这个是因为,在一个组件内部需要引入一个js文件来定位。如果放在index.html,这样每个组件都会有这个js。所以需要在组件内单独引入。

原生JS使用Blob导出csv文件

最近在做关于文件下载的需求:前端调用接口,然后对返回数据进行过滤、格式化,然后按表格内容拼接生成csv文件,让用户下载。数据中存在 ‘,‘ 逗号问题处理:将整个数据用双引号(英文格式)包裹起来,这样会显示成一个单元格。

Linux下你还知道这些特殊文件?

/dev/null 可无限接收数据,你可以认为是一个黑洞,因此如果我们需要丢弃某些终端输出,可以重定向到这里:所以如果你有不需要的数据可以尽情的往这里写。

Flutter 中如何加载并预览本地的 html 文件

直接进入主题,大概步骤如下:在 assets 创建需要访问 html 文件,这里创建一个files文件夹,专门来放这些静态 html 文件.在 pubspec.yaml 中配置访问位置

使用FileSave.js将网页内容保存到文件

在写Chrome extension时候,偶尔需要将网页的内容保存到文件。要实现此功能,正常的流程是创建Blob对象存放内容,创建url,创建一个 a 标签,然后将连接与Blob对象关联并放到 a标签的href或者download(H5)属性中

input type=file 上传文件,同一个文件第二次上传无反应

用input file上传文件,掉用onchange方法时,多次上传同一个文件时功能失效,不会发送ajax请求,input[type=file]使用的是onchange去做,onchange监听的为input的value值,只有再内容发生改变的时候去触发

前端工程师也要掌握的几种文件路径知识

之前在做webpack配置时候多次用到路径相关内容,最近在写项目的时候,有一个文件需要上传到阿里云oss的功能,同时本地服务器也需要保留一个文件备份。多次用到了文件路径相关内容以及Node核心API的path模块

web前端以文件流的形式导出Excel文件

一般web前端处理导出文件有两种方法:其实现原理就是先把服务端返回的数据流通过URL.createObjectURL()方法转成一个URL,这个URL是存放在内存中的,URL的生命周期是和创建的它的document绑定

在不使用mv命令的情况下移动文件

有时当你需要移动一个文件时,mv 命令似乎不是最佳选项,那么你会如何做呢?不起眼的 mv 命令是在你见过的每个 POSIX 系统中都能找到的有用工具之一。它的作用是明确定义的,并且做得很好

fly63.com版权所有,内容以共享、参考、研究为目的,不存在任何商业目的。其版权属原作者所有,如有侵权,请与小编联系!情况属实本人将予以删除!

文章投稿关于web前端网站点搜索站长推荐网站地图站长QQ:522607023

小程序专栏: 土味情话心理测试脑筋急转弯幽默笑话段子句子语录成语大全