尧图网络科技 Logo 尧图网络科技
  • 首页
  • 关于我们
  • 建站服务
  • UI 设计
  • 案例展示
  • SEO 优化
  • 资讯中心
  • 联系我们

资讯详情

深度解读 · 专业分析

  • 首页
  • 资讯中心
  • /
  • el-upload上传图片

最新资讯

  • 全部资讯
  • 行业动态
  • UI 设计
  • SEO 优化
  • 网站开发

el-upload上传图片

📅 发布时间:2026/6/18 20:10:30 👁 浏览次数:
el-upload上传图片

<el-upload上传图片

1 官方文档

  文档

 

2 说明

  这个组件提供了一种默认的上传模式,点击图片上传的时候就自动把图片发送到服务端,而不是在提交表单的时候上传。

  这钟模式不够灵活,也可以设置不自动上传到服务器,自己提交表单的时候上传。下面采取的就是这种方式。

 

3 新增表单时上传

3.1 form表单及相关代码

  点击新增按钮,打开新增窗口

add(){this.dialogTitle = '新增'this.tableForm = {}this.dialogAddVisible = truethis.srcList = []},

   新增窗口表单

<el-dialog :title="dialogTitle"  width="60%" @closed="closedAddOrEdit"><el-form :model="tableForm" ref="tableForm" label-width="120px" ><el-form-item label="金额" prop="money" ><el-input v-model="tableForm.money" style="width:90%" type="number"></el-input></el-form-item><el-form-item label="备注说明" prop="remark" ><el-input v-model="tableForm.remark" style="width:90%" ></el-input></el-form-item><el-form-item label="活动图片"><el-uploadref='upload'action="":auto-upload="false"accept="image/jpg,image/jpeg,image/png":on-change="getImageFile":on-remove="handlePicRemove":file-list="srcList"list-type="picture-card":limit="1"><i class="el-icon-plus"></i><div slot="tip" class="el-upload__tip">只能上传1张图片</div></el-upload></el-form-item></el-form><div slot="footer" class="dialog-footer"><el-button type="primary"  @click="saveForm">确 定</el-button><el-button @click="reset">取 消</el-button></div></el-dialog>

   数据

data () {return {tableForm:{},  // 存储新增编辑数据srcList:[], // 存储图片文件对象集合:包含名字,地址,图片数据等信息}
}        

   方法

methods(){// 图片状态改变时的钩子,添加文件、上传成功和上传失败时都会被调用
        getImageFile(file, fileList) {this.srcList = fileList},//图片移除
        handlePicRemove(file, fileList) {this.srcList = fileList},// 保存新增表单方法saveForm(){// 准备参数let formData = new FormData();formData.append('money',this.tableForm.money)formData.append('remark',this.tableForm.remark)this.srcList.forEach(item=>{formData.append('files',item.raw)  图片数据集合,后台用MultipartFile接收})baseWorkApi.addOrEditCarManage(formData,idEdit).then((res) => {let result = res.datalet msg = result.msgif(result.code==200){this.getList('int')this.dialogAddVisible = falsethis.tableForm = {}this.$message({message: msg,type: 'success'})} else {this.$message({showClose: true,message: msg,type: 'error'});}}).catch((error) => {console.log(error)})} else {return false;}})},
}

   发送请求到后台

addOrEditCarManage(form,isEdit){
return new Promise((resolve, reject) => {axios.post(url,form).then((response) => {resolve(response)}).catch((error) => {reject(error)})}},

 

3.2 <el-upload>的属性简介

action=""和:auto-upload="false"  不让它自动上传:
accept 上传文件类型
list-type  文件列表的类型
limit 文件数量限制
file-list 上传的文件列表
on-change  图片状态发生变化时触发
on-remove 移除图片时触发

 

3.3 提交表单

  发送请求时要采用form表单:let formData = new FormData();

  参数使用FormData,浏览器会自动解析,采用form表单的发送发送请求

 

3.4 后台接收

files接收文件集合
PublicCarGasRecordAddVo 对象的参数和表单参数一一对应,接收其它表单参数
@Log(title = "公车使用管理-加油记录管理-添加")@ResponseBody@PostMapping("/add")public AjaxResult add( @RequestParam("files") List<MultipartFile> files, PublicCarGasRecordAddVo vo) throws Exception{OrgEmployee orgemployeeOnJwt = MyJwtUtils.getOrgemployeeOnJwt();LiveUserWeixin liveUserByUserFlagId = MyJwtUtils.getLiveUserByUserFlagId(orgemployeeOnJwt.getEmpid() + "");if(liveUserByUserFlagId != null){vo.setOperateOpenid(liveUserByUserFlagId.getOpenid());}return publiccargasrecordmanagerservice.addOnHt(vo,orgemployeeOnJwt.getEmpid() + "",orgemployeeOnJwt.getEmpname(),files);}

 

4 编辑

4.1 form表单及相关代码

  点击编辑按钮,打开编辑窗口,并且回显表单

edit(row){this.dialogTitle = '编辑'let {...tableForm} = rowthis.tableForm = tableFormthis.dialogAddVisible = true// 图片回显:this.srcList = [] // 初始化图片文件列表为[]// billImageUrlList后台传来的文件路径集合,复制给文件列表row.billImageUrlList.forEach(e => { let arr = { url: e } this.srcList.push(arr) }) 
},

   编辑窗口表单,和新增一样

<el-dialog :title="dialogTitle"  width="60%" @closed="closedAddOrEdit"><el-form :model="tableForm" ref="tableForm" label-width="120px" ><el-form-item label="金额" prop="money" ><el-input v-model="tableForm.money" style="width:90%" type="number"></el-input></el-form-item><el-form-item label="备注说明" prop="remark" ><el-input v-model="tableForm.remark" style="width:90%" ></el-input></el-form-item><el-form-item label="活动图片"><el-uploadref='upload'action="":auto-upload="false"accept="image/jpg,image/jpeg,image/png":on-change="getImageFile":on-remove="handlePicRemove":file-list="srcList"list-type="picture-card":limit="1"><i class="el-icon-plus"></i><div slot="tip" class="el-upload__tip">只能上传1张图片</div></el-upload></el-form-item></el-form><div slot="footer" class="dialog-footer"><el-button type="primary"  @click="saveForm">确 定</el-button><el-button @click="reset">取 消</el-button></div></el-dialog>

   数据,和新增一样

data () {return {tableForm:{},  // 存储新增编辑数据srcList:[], // 存储图片文件对象集合:包含名字,地址,图片数据等信息}
}        

   方法,和新增一样

methods(){// 图片状态改变时的钩子,添加文件、上传成功和上传失败时都会被调用getImageFile(file, fileList) {this.srcList = fileList},//图片移除handlePicRemove(file, fileList) {this.srcList = fileList},

   

  保存表单,和新增略有不同,

saveForm(){// 表单校验this.$refs['tableForm'].validate((valid) => {if (valid) { // 校验通过var idEdit = false // 标识是否是编辑if(this.tableForm.recordid){idEdit = true} // 准备参数let formData = new FormData();formData.append('money',this.tableForm.money)formData.append('remark',this.tableForm.remark)this.srcList.forEach(item=>{if(item.raw){formData.append('files',item.raw) // 新的图片数据,用MultipartFile集合接收}else{formData.append('oldimgList',item.url) //旧的图片路径集合,后台用字符串集合接收}})baseWorkApi.addOrEditCarManage(formData,idEdit).then((res) => {let result = res.datalet msg = result.msgif(result.code==200){this.getList('int')this.dialogAddVisible = falsethis.tableForm = {}this.$message({message: msg,type: 'success'})} else {this.$message({showClose: true,message: msg,type: 'error'});}}).catch((error) => {console.log(error)})} else {return false;}})},

 

发送请求到后台

addOrEditCarManage(form,isEdit){
return new Promise((resolve, reject) => {axios.post(url,form).then((response) => {resolve(response)}).catch((error) => {reject(error)})}},

 

相关新闻

剑指offer-33、丑数

剑指offer-33、丑数

2026/6/18 3:22:19 查看详情
云平台qcow2镜像的制作

云平台qcow2镜像的制作

2026/6/18 17:58:11 查看详情
hf 下载模型

hf 下载模型

2026/6/18 1:55:52 查看详情
嘉兴、湖州、绍兴锡渣回收:亿万万锡业,正规资质、报价透明、现款现货 - 资讯纵览

嘉兴、湖州、绍兴锡渣回收:亿万万锡业,正规资质、报价透明、现款现货 - 资讯纵览

2026/6/18 20:06:43 查看详情
Python构建黄金价格监控工具:从数据获取到实时预警的完整实现

Python构建黄金价格监控工具:从数据获取到实时预警的完整实现

2026/6/18 20:06:43 查看详情
2026广州从化软著避坑指南|代理机构筛选5大标准+服务商优劣对比+美妆文旅/生态农业/绿色智造软件申报误区,从化生态产业企业专属测评 - 资讯速览

2026广州从化软著避坑指南|代理机构筛选5大标准+服务商优劣对比+美妆文旅/生态农业/绿色智造软件申报误区,从化生态产业企业专属测评 - 资讯速览

2026/6/18 20:06:43 查看详情
杭州宠物店探店记录,适合新手家庭慢慢挑 - 园友3800037

杭州宠物店探店记录,适合新手家庭慢慢挑 - 园友3800037

2026/6/18 20:02:16 查看详情
苏州宠物店推荐,买猫买狗前先收藏 - 园友3800037

苏州宠物店推荐,买猫买狗前先收藏 - 园友3800037

2026/6/18 20:03:09 查看详情
Linux新手工具包jklinux:Shell脚本集合的设计原理与安全实践

Linux新手工具包jklinux:Shell脚本集合的设计原理与安全实践

2026/6/18 20:01:04 查看详情
在Android设备上运行完整Linux系统:proot-distro的魔法与实用指南

在Android设备上运行完整Linux系统:proot-distro的魔法与实用指南

2026/6/18 0:01:28 查看详情
ZigBee ZCL事件驱动与基础簇实战:从原理到健壮设备开发

ZigBee ZCL事件驱动与基础簇实战:从原理到健壮设备开发

2026/6/18 0:01:28 查看详情
时间序列分解实战指南:趋势、季节性与残差的工程化解读

时间序列分解实战指南:趋势、季节性与残差的工程化解读

2026/6/18 0:01:28 查看详情
从Landsat到高分系列:手把手教你选择适合自己项目的遥感卫星数据

从Landsat到高分系列:手把手教你选择适合自己项目的遥感卫星数据

2026/6/18 19:44:15 查看详情
福州空调维修上门加氟移机空调不制冷、推荐本地老牌鑫盛达、冷顺安 - 我叫一

福州空调维修上门加氟移机空调不制冷、推荐本地老牌鑫盛达、冷顺安 - 我叫一

2026/6/17 16:06:28 查看详情
嵌入式调试器组件化界面与拖拽交互技术详解

嵌入式调试器组件化界面与拖拽交互技术详解

2026/6/17 16:15:44 查看详情
YOLOv11涨点改进| CVPR 2026 | 独家创新首发、特征融合改进篇| 引入CMGF 引导特征融合机制,实现对不同模态特征的自适应增强与高效融合,助力多模态目标检测,小目标检测或分割有效涨点

YOLOv11涨点改进| CVPR 2026 | 独家创新首发、特征融合改进篇| 引入CMGF 引导特征融合机制,实现对不同模态特征的自适应增强与高效融合,助力多模态目标检测,小目标检测或分割有效涨点

2026/6/17 21:10:37 查看详情
E-E-A-T 成第一权重:2027 年无经验内容将被彻底淘汰

E-E-A-T 成第一权重:2027 年无经验内容将被彻底淘汰

2026/6/17 21:10:30 查看详情
深圳福田园岭老小区搬家公司推荐 经验足师傅高效搬运攻略 - 从来都是英雄出少年

深圳福田园岭老小区搬家公司推荐 经验足师傅高效搬运攻略 - 从来都是英雄出少年

2026/6/17 21:06:50 查看详情

关于尧图

立足北京本地的一站式网站建设服务与设计教学平台,深耕企业网站定制开发、全网 SEO 优化及网络推广服务。

快速链接

  • 关于我们
  • 建站服务
  • 案例展示
  • 资讯中心

服务项目

  • 企业官网定制
  • UI 界面设计
  • SEO 优化推广
  • 移动端适配

联系方式

电话:400-XXX-XXXX

邮箱:info@zskr.cn

地址:北京市朝阳区 XXX 路 XX 号

© 2026 尧图网络科技 版权所有 | 京 ICP 备 XXXXXXXX 号