antd(react) ProFormUploadDragger(Upload)上传组件上传图片及省略图模糊展示

本文主要是介绍antd(react) ProFormUploadDragger(Upload)上传组件上传图片及省略图模糊展示,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

antd(react) ProFormUploadDragger(Upload)上传组件上传图片及省略图模糊展示

本文基于react+antd+ProComponents

需求:图片模糊展示(数据脱敏)

像营业执照、身份证这种,可能用户不希望自己操作的时候被其他人看见暴露了隐私

如果只是希望查看怎么让图片模糊的,可以直接直接下滑看到最后,之前的html和js代码我只是我怕以后做到相同功能不用重复造轮子了

如果用到 ProFormUploadDragger 或者 Upload 的同学也可以借鉴一下

效果:

普通:

在这里插入图片描述

鼠标移上去:

在这里插入图片描述

点击展示:

在这里插入图片描述

html:


<ProFormsubmitter={false}formRef={merchantFormRef}onFinish={async (values) => {}}onFinishFailed={({ values, errorFields, outOfDate }) => {// 这里就是上传操作了}}scrollToFirstError={true}
>// 上传组件<ProFormUploadDragger// 图标字体变小一点icon={<FileImageOutlined style={{ fontSize: '30px' }} />}width={180}label="营业执照"title="点击上传"description=""// 最大上传一个max={1}name="url"// 以下格式可传accept=".jpg,.png,.bmp,.jpeg,.psd"// 必传rules={[{ required: true, message: '营业执照为必填' }]}// 这里指的是 upload 组件的参数fieldProps={{// 省略图展示listType: 'picture-card',// merchantFormRef 是 form表单的名称beforeUpload: (file, fileList) => beforeUpload(merchantFormRef, file, fileList, 'url2'),onPreview: (file) => handlePreview(file)}}/>// 用来装图片的地址<ProFormTexthiddenname='url2'/>
</ProForm>{/* 图片预览 */}
{previewImageShow && (<ImagewrapperStyle={{ display: 'none' }}preview={{visible: previewImageShow,onVisibleChange: (visible) => setPreviewImageShow(visible),// afterOpenChange: (visible) => !visible && setPreviewImage(''),}}src={previewImage}/>
)}

ts:

/** form */const merchantFormRef = useRef<ProFormInstance>();// 图片显示 的url
const [previewImage, setPreviewImage] = useState('')// 图片是否显示
const [previewImageShow, setPreviewImageShow] = useState<boolean>(false)/*** 上传图片*/
function beforeUpload(formRef: any, file: RcFile, fileList: RcFile[], pictureName: string) {if (fileList.length > 1) {message.error('单次只能上传一张图片')return Upload.LIST_IGNORE;}const isPNG = file.type === 'image/png' || file.type === 'image/gif' || file.type === 'image/jpg' || file.type === 'image/jpeg';if (!isPNG) {message.error(`只支持png、gif、jpg、jpeg格式的图片`);return Upload.LIST_IGNORE;}// 上传图片准备const formData = new FormData();formData.append('file', file as RcFile);formData.append('merchantId', merchantId);// 上传图片uploadPicture(formData).then(({ data, code, msg }) => {if (code === '200') {// 给 form表单 中的 url2 字段 塞入 图片的 urlformRef.current?.setFieldsValue({[pictureName]: data.objectId})}}).catch(() => {message.error(`上传图片失败`)});return false
}
// 图片转格式
const getBase64 = (file: any): Promise<string> =>
new Promise((resolve, reject) => {const reader = new FileReader();reader.readAsDataURL(file);reader.onload = () => resolve(reader.result as string);reader.onerror = (error) => reject(error);
});
// 显示图片
const handlePreview = async (file: UploadFile) => {if (!file.url && !file.preview) {file.preview = await getBase64(file.originFileObj)}setPreviewImage(file.url || (file.preview as string))setPreviewImageShow(true)
}

图片模糊

思路:

1、我先找了一遍antd有没有自定义省略图的组件,发现没找见

2、如果找不到,那么我们就从css下手,按F12看看antd自带的class叫什么

3、然后加上图片模糊的css代码即可

1、打开 f12 找

在这里插入图片描述

2、编辑css

.ant-upload-span{filter: blur(5px);
}

3、进入即可

import './index.less';

这篇关于antd(react) ProFormUploadDragger(Upload)上传组件上传图片及省略图模糊展示的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/998810

相关文章

Java实现图片淡入淡出效果

《Java实现图片淡入淡出效果》在现代图形用户界面和游戏开发中,**图片淡入淡出(FadeIn/Out)**是一种常见且实用的视觉过渡效果,它可以用于启动画面、场景切换、轮播图、提示框弹出等场景,通过... 目录1. 项目背景详细介绍2. 项目需求详细介绍2.1 功能需求2.2 非功能需求3. 相关技术详细

CSS3 布局样式及其应用举例

《CSS3布局样式及其应用举例》CSS3的布局特性为前端开发者提供了无限可能,无论是Flexbox的一维布局还是Grid的二维布局,它们都能够帮助开发者以更清晰、简洁的方式实现复杂的网页布局,本文给... 目录深入探讨 css3 布局样式及其应用引言一、CSS布局的历史与发展1.1 早期布局的局限性1.2

使用animation.css库快速实现CSS3旋转动画效果

《使用animation.css库快速实现CSS3旋转动画效果》随着Web技术的不断发展,动画效果已经成为了网页设计中不可或缺的一部分,本文将深入探讨animation.css的工作原理,如何使用以及... 目录1. css3动画技术简介2. animation.css库介绍2.1 animation.cs

CSS引入方式和选择符的讲解和运用小结

《CSS引入方式和选择符的讲解和运用小结》CSS即层叠样式表,是一种用于描述网页文档(如HTML或XML)外观和格式的样式表语言,它主要用于将网页内容的呈现(外观)和结构(内容)分离,从而实现... 目录一、前言二、css 是什么三、CSS 引入方式1、行内样式2、内部样式表3、链入外部样式表四、CSS 选

使用雪花算法产生id导致前端精度缺失问题解决方案

《使用雪花算法产生id导致前端精度缺失问题解决方案》雪花算法由Twitter提出,设计目的是生成唯一的、递增的ID,下面:本文主要介绍使用雪花算法产生id导致前端精度缺失问题的解决方案,文中通过代... 目录一、问题根源二、解决方案1. 全局配置Jackson序列化规则2. 实体类必须使用Long封装类3.

PyQt6中QMainWindow组件的使用详解

《PyQt6中QMainWindow组件的使用详解》QMainWindow是PyQt6中用于构建桌面应用程序的基础组件,本文主要介绍了PyQt6中QMainWindow组件的使用,具有一定的参考价值,... 目录1. QMainWindow 组php件概述2. 使用 QMainWindow3. QMainW

Java如何根据文件名前缀自动分组图片文件

《Java如何根据文件名前缀自动分组图片文件》一大堆文件(比如图片)堆在一个目录下,它们的命名规则遵循一定的格式,混在一起很难管理,所以本文小编就和大家介绍一下如何使用Java根据文件名前缀自动分组图... 目录需求背景分析思路实现代码输出结果知识扩展需求一大堆文件(比如图片)堆在一个目录下,它们的命名规

MySQL中like模糊查询的优化方案

《MySQL中like模糊查询的优化方案》在MySQL中,like模糊查询是一种常用的查询方式,但在某些情况下可能会导致性能问题,本文将介绍八种优化MySQL中like模糊查询的方法,需要的朋友可以参... 目录1. 避免以通配符开头的查询2. 使用全文索引(Full-text Index)3. 使用前缀索

Java实现MinIO文件上传的加解密操作

《Java实现MinIO文件上传的加解密操作》在云存储场景中,数据安全是核心需求之一,MinIO作为高性能对象存储服务,支持通过客户端加密(CSE)在数据上传前完成加密,下面我们来看看如何通过Java... 目录一、背景与需求二、技术选型与原理1. 加密方案对比2. 核心算法选择三、完整代码实现1. 加密上

将图片导入Python的turtle库的详细过程

《将图片导入Python的turtle库的详细过程》在Python编程的世界里,turtle库以其简单易用、图形化交互的特点,深受初学者喜爱,随着项目的复杂度增加,仅仅依靠线条和颜色来绘制图形可能已经... 目录开篇引言正文剖析1. 理解基础:Turtle库的工作原理2. 图片格式与支持3. 实现步骤详解第