首页 > 原创文章 > 软件开发 > 查看文章

微信小程序实现pdf/doc等文档预览并可以保存下载的方法

所属分类:软件开发 来源: 丁老师原创 更新时间:2025-04-16 23:32 IP属地: 深圳
微信小程序开发
点击阅读全文

微信小程序可以实现文档的在线预览及保存本地下载,支持的格式有pdf/doc/xls/ppt等常用文档类型,如图:

微信图片_20250416232157.jpg

微信图片_20250416232204.jpg

除了对办公文档进行预览,还可以进行转发、收藏、保存手机本地等其他操作。

实现该功能的思路为,先用downloadFile下载文件到本地,然后使用openDocument方法来打开文档预览。
具体代码如下:

uni.downloadFile({
	url:文件url,
	success: function (res) {
		uni.openDocument({
			filePath: res['tempFilePath'],
			fileType: 'doc',
			showMenu: true,
			success: function (res) {
				
			},
			fail: function (res) {
				console.log('打开PDF失败', res);
			}
		})
	},
	fail: function (res) {
		console.log('打开PDF失败', res);
	}
});

以上代码为打开doc文件预览的方法,其中showMenu参数为,打开文件后是否允许有转发、收藏、保存手机本地等操作菜单,默认为false,如果需要则设置为true即可。

此代码将会把文档下载到本地,保存为临时文件然后打开。打开时顶部标题栏显示的文件名为临时文件名,如果想在标题栏显示自定义名称,则在downloadFile方法中,增加参数filePath,即指定保存路径,保存到指定路径时即对文件进行了命名。然后在openDocument中的filePath就不是res['tempFilePath']了,而是设置为刚才的指定路径即可。

相关文章

java如何在请求中加入参数?

在Java中,提交请求时加入参数有两种方法:一、把参数直接写在url中,如:如请求url是https://www.aaa.com,参数是name=kevin,gender=2,那么可以直接把请求url写成https://www.aaa....

性价比最高的内网穿透方案

内网穿透,是指外网可以访问内网,没有固定IP的服务器,所以需要中间件来进行通讯,目前稳定成熟的中间件软件,要么价格太贵,要么就是只能使用标准服务,不能完全的定制化。那么,到底有没有一个性价比最优的方案呢?回答是肯定的,答案就是使用云服务...

文件名中包含空格,下载时报404出错的办法

最近有同学提问,在开发的软件项目中,用户上传的文件名中包含空格,导致用户点击下载时,提示找不到该文件,404的错误,这种问题怎么解决呢?首先,引起这种问题的原因就是文件名中有空格,导致了下载的url无法形成完成的链接。我分别做了两个下载...

PHP网页报DOMDocument::loa...

PHP网站,网页打开不正常,显示“DOMDocument::loadHTML():TagheaderinvalidinEntity”错误代码,是怎么回事呢?其实,这是php程序中,使用了newDOMDocument的loadHTML来解...

推荐文章

mui的toast修改位置居中

mui的toast默认是在底部的,并且没有参数设置位置,经过研究发现可以通过修改css的方式设置位置,具体方法如下:1.muitoast设置type为divmui.toast('hello', {type: 'div...

bt宝塔升级方法

由老版本7.2自动升级时,会出现很多问题,建议在终端手动升级。升级命令:curl http://download.bt.cn/install/update_panel.sh|bash

小程序开发的流程费用以及需要什么准备材料?

小程序定制开发的流程和费用,以及需要准备的材料,(包括但不限于微信小程序、百度小程序、支付宝小程序、抖音小程序、小红书小程序)具体如下:一、小程序开发的行政流程1.确定软件开发公司,和开发公司签订合同2.甲方支付首期开发费用3.乙方开始进行...

js复制对象改变原值的解决办法

在进行vue开发中,经常会遇到复制对象,赋值新对象后,原对象值被改变的问题,举个例子:let old={"a":1,"b":2}let new=old;new['c']=3;这个时候你...