el-upload手动上传图片,上传后隐藏上传样式(el-upload上传单张图片,vue2)

2023-10-13 03:04

本文主要是介绍el-upload手动上传图片,上传后隐藏上传样式(el-upload上传单张图片,vue2),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

简介:上期介绍了使用el-upload上传文件,这次来介绍一下如何使用el-upload上传图片,只能上传一次,上传图片后隐藏上传按钮部分。

实现效果图:

1、首先,想要在项目中使用el-upload组件,同样,得保证项目中已经安装且引入了该组件,具体安装及引入可见上篇文章。

el-upload下载使用icon-default.png?t=N7T8https://blog.csdn.net/weixin_65793170/article/details/132627341?spm=1001.2014.3001.5501

2、然后直接在vue组件中使用。


<el-upload class="upload_box" ref="upload" :limit="limitNum" :class="{ uploadHide: hideUploadEdit }"                :on-change="handleEditChange" :http-request="ImgUploadSectionFile":before-upload="beforeAvatarUpload" :with-credentials="true" :auto-upload="true"accept=".png, .jpg" list-type="picture-card" :file-list="fileList"action=""><!-- 加号标识 --><i slot="default" class="el-icon-plus"></i><!-- 上传后显示 --><div slot="file" slot-scope="{file}"><img class="el-upload-list__item-thumbnail" :src="file.url" alt=""><span class="el-upload-list__item-actions"><!-- 图片放大 --><span class="el-upload-list__item-preview"                                     @click="handlePictureCardPreview(file)"><i class="el-icon-zoom-in"></i></span><!-- 图片放大 --><span v-if="!disabled" class="el-upload-list__item-delete"@click="handleRemove(file)"><i class="el-icon-delete"></i></span></span></div>
</el-upload>

当然,上传处也可以换成按钮或者其它,像这样,

上传处替换成按钮,代码多去少补,

<el-upload class="upload_box" ref="upload" :limit="limitNum" :class="{ uploadHide: hideUploadEdit }"                :on-change="handleEditChange" :http-request="ImgUploadSectionFile":before-upload="beforeAvatarUpload" :with-credentials="true" :auto-upload="true"accept=".png, .jpg" :file-list="fileList"action=""><!-- 上传按钮 --><el-button class="upload_btn" slot="trigger" size="small" type="primary">上传图片<i class="el-icon-upload el-icon--right"></i></el-button><!-- 上传后显示 --><div slot="file" slot-scope="{file}"><img class="el-upload-list__item-thumbnail" :src="file.url" alt=""><span class="el-upload-list__item-actions"><!-- 图片放大 --><span class="el-upload-list__item-preview"                                     @click="handlePictureCardPreview(file)"><i class="el-icon-zoom-in"></i></span><!-- 图片放大 --><span v-if="!disabled" class="el-upload-list__item-delete"@click="handleRemove(file)"><i class="el-icon-delete"></i></span></span></div>
</el-upload>

因为这里是本地图片测试上传,所以组件中的action属性为空,上传到接口,还需另行配置。

3、相关必要样式和属性介绍。

// 隐藏上传按钮
::v-deep .uploadBox_hide .el-upload--picture-card {display: none;
}
// 搭配动态 :class 使用
:class="{ uploadBox_hide: hideUploadEdit }" 这个样式用于,去掉添加/删除文件时的过渡动画
// ::v-deep .el-upload-list__item {
//     transition: none !important;
// }:limit="limitNum" //最大允许上传个数:class="{hide:hideUploadEdit}" //加类名为了隐藏上传样式:on-remove="handleRemove" //文件列表移除文件时的钩子:on-change="handleEditChange" //文件状态改变时的钩子(可以限制文件数量和文件大小):http-request="ImgUploadSectionFile" //覆盖默认的上传行为,实现手动上传:before-upload="beforeAvatarUpload" //上传文件之前的钩子:with-credentials="true" //支持发送 cookie 凭证信息:auto-upload="true" //是否在选取文件后立即进行上传(不知什么原因false没效果)accept=".png, .jpg" //接受上传的文件类型action="" //手动上传不需要填写urllist-type="picture-card" //设置文件列表的样式:file-list="fileList" //上传的文件列表

4、上传相关事件。

       // 放大图片handlePictureCardPreview(file) {this.dialogImageUrl = file.url;this.dialogVisible = true;},// 删除图片handleRemove(file, fileList) {if (this.fileList.length === 0) {this.fileList = [];} else {let dl = this.fileList.indexOf(file);this.fileList.splice(dl, 1);}this.hideUploadEdit = this.fileList.length >= this.limitNum;},// on-change添加文件,上传成功和上传失败时都会被调用handleEditChange(file, fileList) {this.hideUploadEdit = fileList.length >= this.limitNum;// console.log("this.fileList:", this.fileList);// console.log("this.hideUploadEdit:", this.hideUploadEdit);},// http-request自定义上传ImgUploadSectionFile(param) {this.param = param;},// before-upload上传文件之前的钩子,参数为上传的文件// 若返回 false 或者返回 Promise 且被 reject,则停止上传beforeAvatarUpload(file) {const isJPG = file.type === "image/jpeg" || file.type === "image/png";const isLt2M = file.size / 1024 / 1024 < 2;if (!isJPG) {this.$message.error("上传图片只能是 JPG 或 PNG 格式!");}if (!isLt2M) {this.$message.error("上传图片大小不能超过 2MB!");}return isJPG && isLt2M;},// 文件上传成功时的钩子handleSuccess(file) {// console.log(file);const data = file.data;//然后数据、逻辑处理},

创作不易,感觉有用,就点赞、收藏加关注,感谢(●'◡'●)

这篇关于el-upload手动上传图片,上传后隐藏上传样式(el-upload上传单张图片,vue2)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

使用opencv优化图片(画面变清晰)

文章目录 需求影响照片清晰度的因素 实现降噪测试代码 锐化空间锐化Unsharp Masking频率域锐化对比测试 对比度增强常用算法对比测试 需求 对图像进行优化,使其看起来更清晰,同时保持尺寸不变,通常涉及到图像处理技术如锐化、降噪、对比度增强等 影响照片清晰度的因素 影响照片清晰度的因素有很多,主要可以从以下几个方面来分析 1. 拍摄设备 相机传感器:相机传

Android 10.0 mtk平板camera2横屏预览旋转90度横屏拍照图片旋转90度功能实现

1.前言 在10.0的系统rom定制化开发中,在进行一些平板等默认横屏的设备开发的过程中,需要在进入camera2的 时候,默认预览图像也是需要横屏显示的,在上一篇已经实现了横屏预览功能,然后发现横屏预览后,拍照保存的图片 依然是竖屏的,所以说同样需要将图片也保存为横屏图标了,所以就需要看下mtk的camera2的相关横屏保存图片功能, 如何实现实现横屏保存图片功能 如图所示: 2.mtk

Spring MVC 图片上传

引入需要的包 <dependency><groupId>commons-logging</groupId><artifactId>commons-logging</artifactId><version>1.1</version></dependency><dependency><groupId>commons-io</groupId><artifactId>commons-

vue2 组件通信

props + emits props:用于接收父组件传递给子组件的数据。可以定义期望从父组件接收的数据结构和类型。‘子组件不可更改该数据’emits:用于定义组件可以向父组件发出的事件。这允许父组件监听子组件的事件并作出响应。(比如数据更新) props检查属性 属性名类型描述默认值typeFunction指定 prop 应该是什么类型,如 String, Number, Boolean,

Prompt - 将图片的表格转换成Markdown

Prompt - 将图片的表格转换成Markdown 0. 引言1. 提示词2. 原始版本 0. 引言 最近尝试将图片中的表格转换成Markdown格式,需要不断条件和优化提示词。记录一下调整好的提示词,以后在继续优化迭代。 1. 提示词 英文版本: You are an AI assistant tasked with extracting the content of

研究人员在RSA大会上演示利用恶意JPEG图片入侵企业内网

安全研究人员Marcus Murray在正在旧金山举行的RSA大会上公布了一种利用恶意JPEG图片入侵企业网络内部Windows服务器的新方法。  攻击流程及漏洞分析 最近,安全专家兼渗透测试员Marcus Murray发现了一种利用恶意JPEG图片来攻击Windows服务器的新方法,利用该方法还可以在目标网络中进行特权提升。几天前,在旧金山举行的RSA大会上,该Marcus现场展示了攻击流程,

恶意PNG:隐藏在图片中的“恶魔”

&lt;img src=&quot;https://i-blog.csdnimg.cn/blog_migrate/bffb187dc3546c6c5c6b8aa18b34b962.jpeg&quot; title=&quot;214201hhuuhubsuyuukbfy_meitu_1_meitu_2.jpg&quot;/&gt;&lt;/strong&gt;&lt;/span&gt;&lt;

PHP抓取网站图片脚本

方法一: <?phpheader("Content-type:image/jpeg"); class download_image{function read_url($str) { $file=fopen($str,"r");$result = ''; while(!feof($file)) { $result.=fgets($file,9999); } fclose($file); re

在SSH的基础上使用jquery.uploadify.js上传文件

在SSH框架的基础上,使用jquery.uploadify.js实现文件的上传,之前搞了好几天,都上传不了, 在Action那边File接收到的总是为null, 为了这个还上网搜了好多相关的信息,但都不行,最后还是搜到一篇文章帮助到我了,希望能帮助到为之困扰的人。 jsp页面的关键代码: <link rel="stylesheet" type="text/css" href="${page

vue2实践:el-table实现由用户自己控制行数的动态表格

需求 项目中需要提供一个动态表单,如图: 当我点击添加时,便添加一行;点击右边的删除时,便删除这一行。 至少要有一行数据,但是没有上限。 思路 这种每一行的数据固定,但是不定行数的,很容易想到使用el-table来实现,它可以循环读取:data所绑定的数组,来生成行数据,不同的是: 1、table里面的每一个cell,需要放置一个input来支持用户编辑。 2、最后一列放置两个b