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

vue+SpringBoot的图片上传

前端VUE的代码实现

直接粘贴过来element-UI的组件实现

        <el-uploadclass="avatar-uploader"action="/uploadAvatar"   //这个action的值是服务端的路径,其他不用改:show-file-list="false":on-success="handleAvatarSuccess":before-upload="beforeAvatarUpload"><img v-if="imageUrl" :src="imageUrl" class="avatar"><i v-else class="el-icon-plus avatar-uploader-icon"></i></el-upload>

后端springboot的代码实现

package com.aqiuo.controller;import com.aqiuo.entity.dto.Result;
import com.aqiuo.utils.RandomUtil;
import lombok.extern.slf4j.Slf4j;
import org.springframework.http.HttpRequest;
import org.springframework.util.ResourceUtils;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;import javax.servlet.http.HttpServletRequest;
import java.io.File;
import java.io.IOException;
import java.util.UUID;@RestController
@ResponseBody
@Slf4j
public class UploadAvatar {@RequestMapping(value = "/uploadAvatar",method = {RequestMethod.POST})public Result imgUpDown(@RequestParam("file") MultipartFile file, HttpServletRequest request) throws IOException {if(!file.isEmpty()) {String fileName = file.getOriginalFilename();String suffixName = fileName.substring(fileName.indexOf("."));//设置上传文件的保存地址目录String dirpath=request.getServletContext().getRealPath("/upload");System.out.println(dirpath);File parentFilePath=new File(dirpath);//如果保存文件不存在就先创建目录if(!parentFilePath.exists()) {parentFilePath.mkdir();}String fileNewName = UUID.randomUUID() + fileName;File newFile = new File(parentFilePath, fileNewName);file.transferTo(newFile);return Result.ok(newFile);}return null;}
}

易错地点:

文件的存储位置一定要明确

运行效果

相关文章:

  • python生成邀请码,手机验证码
  • Android控件全解手册 - 自定义实现水波进度
  • 解决kubernetes中微服务pod之间调用失败报错connection refused的问题
  • Nginx(资源压缩)
  • 人工智能 -- 神经网络
  • 【React】打包优化-配置CDN
  • echart一键生成迁徙图
  • 了解FastSam:一个通用分割模型(草记)
  • Qt5.15.2静态编译 VS2017 with static OpenSSL
  • 存算一体还是存算分离?谈谈数据库基础设施的架构选择
  • 2023.11.22 数据仓库2-维度建模
  • Centos 7 离线安装(tar) NodeJS 16 和 Vue
  • docker启动容器失败,然后查看日志,docker logs查看容器出现报错:
  • 面试问题--智能指针
  • U盘报错无法访问文件或目录损坏且无法读取的解决办法
  • 「前端」从UglifyJSPlugin强制开启css压缩探究webpack插件运行机制
  • canvas 绘制双线技巧
  • DataBase in Android
  • es6(二):字符串的扩展
  • Java|序列化异常StreamCorruptedException的解决方法
  • Java基本数据类型之Number
  • Java-详解HashMap
  • JS笔记四:作用域、变量(函数)提升
  • Mac转Windows的拯救指南
  • Material Design
  • Netty源码解析1-Buffer
  • python大佬养成计划----difflib模块
  • RedisSerializer之JdkSerializationRedisSerializer分析
  • Terraform入门 - 1. 安装Terraform
  • 创建一个Struts2项目maven 方式
  • 从setTimeout-setInterval看JS线程
  • 工作手记之html2canvas使用概述
  • 前端学习笔记之观察者模式
  • ​【原创】基于SSM的酒店预约管理系统(酒店管理系统毕业设计)
  • (1)(1.13) SiK无线电高级配置(五)
  • (delphi11最新学习资料) Object Pascal 学习笔记---第7章第3节(封装和窗体)
  • (LeetCode 49)Anagrams
  • (动手学习深度学习)第13章 计算机视觉---微调
  • (论文阅读23/100)Hierarchical Convolutional Features for Visual Tracking
  • (十五)使用Nexus创建Maven私服
  • (一)eclipse Dynamic web project 工程目录以及文件路径问题
  • (转)C语言家族扩展收藏 (转)C语言家族扩展
  • (转)http协议
  • (转)用.Net的File控件上传文件的解决方案
  • (转载)虚函数剖析
  • * 论文笔记 【Wide Deep Learning for Recommender Systems】
  • *上位机的定义
  • .NET Core 实现 Redis 批量查询指定格式的Key
  • .net 设置默认首页
  • .net 使用$.ajax实现从前台调用后台方法(包含静态方法和非静态方法调用)
  • /bin、/sbin、/usr/bin、/usr/sbin
  • @Data注解的作用
  • @TableLogic注解说明,以及对增删改查的影响
  • [ IO.File ] FileSystemWatcher
  • [2544]最短路 (两种算法)(HDU)