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

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

所属分类:软件开发 来源: 丁老师原创 更新时间:2025-04-16 23:32 浏览: 7591 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']了,而是设置为刚才的指定路径即可。

相关文章

Composer self-update 更...

1. composer版本更新文档版本号:https://getcomposer.org/download中文网:https://docs.phpcomposer.com/03-cli.html#self-update英文网:https...

百度编辑器ueditor自动添加p标签换行的...

在实际工作中发现,有个编辑器每次保存或者修改后,都会自动在内容顶部和底部增加几行,烦人的很,一直找不到解决办法。后来发现原来是自己代码的问题。解决办法:内容在textarea中,不要换行不要写成:<textarea{content...

Maven是什么?为什么Java开发要用到M...

昨天有新学Java编程的同学咨询丁老师,Java开发中的Maven是什么呢?为什么现在Java软件开发都要用到Maven?今天就这个问题,丁老师用最简单、最直白,所有新手初学者都能听得懂的方式,做一下介绍。Maven是什么?简单的说,M...

如何删除idea软件搜索时的find mas...

在使用idea系列的配套软件时,如intellij idea、Php Storm、Web Strom时,在搜索文件时,右上角的file mask可以筛选指定类型的文件。但是有时候可能会输入错误,产生多个记录,而且没办法删除,在以后的开发...

推荐文章

php拼装sql语句,换行查询出错的问题解决

在php代码中,遇到复杂的sql语句,需要拼装sql语句,如:$sql='id 10;' $sql=' and( status in(1,2,3,4,5) and id not in (select id from ...

photoshop打不开任何文件的解决方法

有同学反应,在使用photoshop时,忽然文件打不开了,先后试了下psd格式、jpg格式、png格式的,等等等等,全都打不开,重启了电脑也不行,这是怎么回事呢?经过丁老师研究后发现,这是因为安装的是非正版photoshop,在使用时,没有...

IDEA IDE换行自动显示的}括号如何去掉

在使用idea旗下的产品,如intellij idea,php storm,web storm时,有的时候编辑前端页面JS,在换行时经常会自动出现个}大括号,这一点程序不是很智能,其实后边都已经有括号了。比如下图这样:那么如何解决这个问题呢...

FastAdmin add/edit方法不更...

问题:fastadmin的add/edit方法无法保存数据,检查了页面,name=row['name']正常传送,检查controller,也是默认的方法,什么也没有动可就是无法保存数据。解决:经过仔细研究发现,原来是htm...