微信小程序【uni-file-picker文件预览】

uni-file-picker文件预览

一、介绍

这个组件上传文件回显,点击预览都正常,然后换成上传文件就凉凉,只能上传不能回显,完全不晓得自己上传的对不对

使用组件uni-file-picker文章:https://blog.csdn.net/weixin_45853881/article/details/156019921

二、代码

一般小程序引入的组件都存放在uni_modules目录下(需要修改uni-file-picker.vue和upload-file.vue文件)

找到当前项目的uni_modules\uni-file-picker\components\uni-file-picker目录下

1、修改uni-file-picker.vue

在文件19行左右加入@preview="preview"

bash 复制代码
<upload-file v-if="fileMediatype !== 'image' || showType !== 'grid'" :readonly="readonly"
	:list-styles="listStyles" :files-list="filesList" :showType="showType" :delIcon="delIcon"
	@uploadFiles="uploadFiles" @choose="choose" @delFile="delFile" @preview="preview">
	<slot><button type="primary" size="mini">选择文件</button></slot>
</upload-file>

在文件methods中加入方法preview,我实在delFile方法之后写的,也就是535行

bash 复制代码
/**
 * 文件预览(支持pdf/doc/docx)
 * @param {Object} file 文件对象 {name,url}
 */
preview(file) {
	if (!file || !file.url) {
		uni.showToast({
			title: "文件地址不存在",
			icon: "none"
		});
		return;
	}
	uni.downloadFile({
		url: file.url,
		success: (res) => {
			if (res.statusCode === 200) {
				uni.openDocument({
					filePath: res.tempFilePath,
					success: () => {},
					fail: () => {
						uni.showToast({
							title: "文件打开失败",
							icon: "none"
						});
					}
				})
			}
		},
		fail: () => {
			uni.showToast({
				title: "文件下载失败,无法预览",
				icon: "none"
			});
		}
	})
},

2、修改upload-file.vue

看表格看代码块都可以,写代码块是为了方便复制,反正我懒,现在写了以后省事

源代码 修改后 行数 截图
<view class="files__name">{``{item.name}}</view> <view class="files__name" @click="$emit('preview', item)">{``{item.name}}</view> 18行左右
emits:['uploadFiles','choose','delFile'], emits:'uploadFiles','choose','delFile','preview', 41行左右

2.1、增加点击事件

bash 复制代码
<view class="files__name">{{item.name}}</view>

修改为(增加点击事件)

bash 复制代码
<view class="files__name" @click="$emit('preview', item)">{{item.name}}</view>

2.2、增加抛出事件

bash 复制代码
emits:['uploadFiles','choose','delFile'],

修改为(增加preview)

bash 复制代码
emits:['uploadFiles','choose','delFile','preview'],
相关推荐
wafrdggh10 小时前
2026电商快递批量查询怎么用?固乔助手模板设置评测
大数据·数据库·小程序
计算机毕设定制辅导-无忧学长17 小时前
《基于微信小程序的居家医疗陪护预约系统设计与实现》
java·spring boot·微信小程序·uniapp·居家医疗陪护预约系统
wafrdggh1 天前
2026 商城小程序平台哪个价格合理?把跨境附加成本这个坑算透
大数据·小程序
大数据技术派2 天前
我用AI写代码,做了3个小玩意儿
后端·微信小程序
律宏阔3 天前
Taro 4 项目从 npm 迁移到 pnpm 踩坑实录
前端·微信小程序·taro
恩创软件开发3 天前
自助KTV系统管理员续单功能
经验分享·小程序
多客:duokelijie4 天前
代练订单系统选型思路:跨品类游戏接入、订单分层管理、自动结算逻辑拆解!
数据库·mysql·微信小程序·前端框架·uni-app·php·持续部署
AI源码5 天前
在线考试小程序
小程序·notepad++
计算机毕设定制辅导-无忧学长5 天前
《基于微信小程序健康习惯激励系统设计与实现》
java·spring boot·mysql·微信小程序·uniapp·健康习惯激励系统
2501_916008895 天前
iPhone 设备信息查看,用 KeyMob 看型号、序列号、电池健康和 UDID
android·ios·小程序·https·uni-app·iphone·webview