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

相关文章

Python实现图片分割的多种方法总结

《Python实现图片分割的多种方法总结》图片分割是图像处理中的一个重要任务,它的目标是将图像划分为多个区域或者对象,本文为大家整理了一些常用的分割方法,大家可以根据需求自行选择... 目录1. 基于传统图像处理的分割方法(1) 使用固定阈值分割图片(2) 自适应阈值分割(3) 使用图像边缘检测分割(4)

HTML5中的Microdata与历史记录管理详解

《HTML5中的Microdata与历史记录管理详解》Microdata作为HTML5新增的一个特性,它允许开发者在HTML文档中添加更多的语义信息,以便于搜索引擎和浏览器更好地理解页面内容,本文将探... 目录html5中的Mijscrodata与历史记录管理背景简介html5中的Microdata使用M

html5的响应式布局的方法示例详解

《html5的响应式布局的方法示例详解》:本文主要介绍了HTML5中使用媒体查询和Flexbox进行响应式布局的方法,简要介绍了CSSGrid布局的基础知识和如何实现自动换行的网格布局,详细内容请阅读本文,希望能对你有所帮助... 一 使用媒体查询响应式布局        使用的参数@media这是常用的

HTML5表格语法格式详解

《HTML5表格语法格式详解》在HTML语法中,表格主要通过table、tr和td3个标签构成,本文通过实例代码讲解HTML5表格语法格式,感兴趣的朋友一起看看吧... 目录一、表格1.表格语法格式2.表格属性 3.例子二、不规则表格1.跨行2.跨列3.例子一、表格在html语法中,表格主要通过< tab

MySQL索引的优化之LIKE模糊查询功能实现

《MySQL索引的优化之LIKE模糊查询功能实现》:本文主要介绍MySQL索引的优化之LIKE模糊查询功能实现,本文通过示例代码给大家介绍的非常详细,感兴趣的朋友一起看看吧... 目录一、前缀匹配优化二、后缀匹配优化三、中间匹配优化四、覆盖索引优化五、减少查询范围六、避免通配符开头七、使用外部搜索引擎八、分

springboot上传zip包并解压至服务器nginx目录方式

《springboot上传zip包并解压至服务器nginx目录方式》:本文主要介绍springboot上传zip包并解压至服务器nginx目录方式,具有很好的参考价值,希望对大家有所帮助,如有错误... 目录springboot上传zip包并解压至服务器nginx目录1.首先需要引入zip相关jar包2.然

C#实现将Excel表格转换为图片(JPG/ PNG)

《C#实现将Excel表格转换为图片(JPG/PNG)》Excel表格可能会因为不同设备或字体缺失等问题,导致格式错乱或数据显示异常,转换为图片后,能确保数据的排版等保持一致,下面我们看看如何使用C... 目录通过C# 转换Excel工作表到图片通过C# 转换指定单元格区域到图片知识扩展C# 将 Excel

Vue3组件中getCurrentInstance()获取App实例,但是返回null的解决方案

《Vue3组件中getCurrentInstance()获取App实例,但是返回null的解决方案》:本文主要介绍Vue3组件中getCurrentInstance()获取App实例,但是返回nu... 目录vue3组件中getCurrentInstajavascriptnce()获取App实例,但是返回n

JS+HTML实现在线图片水印添加工具

《JS+HTML实现在线图片水印添加工具》在社交媒体和内容创作日益频繁的今天,如何保护原创内容、展示品牌身份成了一个不得不面对的问题,本文将实现一个完全基于HTML+CSS构建的现代化图片水印在线工具... 目录概述功能亮点使用方法技术解析延伸思考运行效果项目源码下载总结概述在社交媒体和内容创作日益频繁的

前端CSS Grid 布局示例详解

《前端CSSGrid布局示例详解》CSSGrid是一种二维布局系统,可以同时控制行和列,相比Flex(一维布局),更适合用在整体页面布局或复杂模块结构中,:本文主要介绍前端CSSGri... 目录css Grid 布局详解(通俗易懂版)一、概述二、基础概念三、创建 Grid 容器四、定义网格行和列五、设置行