当前位置: 首页 > news >正文

【Vue】三、使用ElementUI实现图片上传

目录

一、前端代码实现        

二、后端代码实现

三、调试效果实现


一、前端代码实现        

        废话不多说直接上代码

<el-form-item prop="image" label="上传图片" v-model="form.image"><el-upload:action="'http://localhost:8080/files/upload'"list-type="picture-card"limit="1":on-exceed="limitError":on-success="imgSuccess":on-error="imgError"><i class="el-icon-plus"></i></el-upload></el-form-item>

        这里用了elementUI的一个简单的例子,自己又改了一些,简单讲解一下

        action: 头像上传向后端发送的地址,这里后端采用了本地上传

        list-type: 即文件列表的类型,就是上传后文件的样式是图片还是文字的格式

        limit: 上传数量的限制,这里仅可上传一张图片

        on-exceed: 上传超过限制触发的函数

        on-success: 上传成功触发的函数

        on-error: 上传失败触发的函数

        更多参数可以参照:组件 | Element

        相对应的函数如下:

    // 上传成功imgSuccess(res, file) {this.imageUrl = res.data;this.form.image = this.imageUrl;console.log(res.data);},// 上传失败imgError(res) {this.$message({type: "error",message: "附件上传失败",});},// 上传数量超限limitError() {this.$message({type: "error",message: "图片仅可上传一张",});},

        比较重要的是上传成功后的函数imgSuccess,此函数需要根据实际项目中你的form表单的值或者构建的data进行绑定操作,确保图片地址能被后端存储便于后续展示

二、后端代码实现

/*** 文件上传*/@PostMapping("/upload")public Result upload(MultipartFile file) {if(file == null || file.isEmpty()) {return Result.error(400,"上传文件为空");}String flag;synchronized (FileController.class) {flag = System.currentTimeMillis() + "";ThreadUtil.sleep(1L);}String fileName = file.getOriginalFilename();try {if (!FileUtil.isDirectory(filePath)) {FileUtil.mkdir(filePath);}// 文件存储形式:时间戳-文件名FileUtil.writeBytes(file.getBytes(), filePath + flag + "-" + fileName);System.out.println(fileName + "--上传成功");System.out.println("文件上传地址"+filePath);} catch (Exception e) {System.err.println(fileName + "--文件上传失败");return Result.error(400,"文件上传失败");}String http = "http://" + ip + ":" + port + "/files/";return Result.success(http + flag + "-" + fileName);}

        很普通的一个文件上传接口,仅接收一个文件流并进行本地存储后名称为:时间戳-文件名,

后端进行测试没有问题

三、调试效果实现

        

 

前端显示图片上传成功

http://www.lryc.cn/news/322061.html

相关文章:

  • ffmpeg的ffprobe.exe查询修改视频信息
  • Windows 2019服务器上安装NFS服务器
  • 元素定位之xpath和css
  • JavaScript 什么是纯函数,有哪些常见的纯函数
  • c++ 指针大小
  • IBM SPSS Statistics:提升数据处理效率的利器
  • is ignored, because it exists, maybe from xml file
  • Spark面试整理-Spark是什么?
  • Android 13.0 开机启动优化之PMS扫描apk耗时相关功能优化
  • 云蜜罐技术(德迅猎鹰)诞生
  • ARM:汇编点灯
  • 69: 偷菜时间表(python)
  • 【计算机视觉】三、图像处理——实验:图像去模糊和去噪、提取边缘特征
  • 用css滤镜做颜色不同的数据卡片(背景图对于css滤镜的使用)
  • 2024年第六届区块链与物联网国际会议(BIOTC 2024)即将召开!
  • Django动态路由实例
  • 基于Vue.js和D3.js的智能停车可视化系统
  • 数据之王国:解析Facebook的大数据应用
  • 前端小白的学习之路(ES6 一)
  • Linux CentOS 7.6安装Redis 6.2.6 详细保姆级教程
  • Android 优化 - 数据结构
  • Linux环境开发工具之vim
  • 「Linux系列」Shell介绍及起步
  • 用pdf2docx将PDF转换成word文档
  • STM32U5 ADC 自校准不成功的问题分析
  • 使用光标精灵更换电脑鼠标光标样式,一键安装使用
  • 微服务day04(上)-- RabbitMQ学习与入门
  • Halcon 3D 平面拟合(区域采样、Z值过滤、平面拟合、平面移动)
  • npm 插件 中 版本号为 星号 是什么意思
  • Codeforces\ Round\ 930(C.Bitwise Operation Wizard)