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

项目1总结其三(图片上传功能)

1、UploadService

public interface UploadService {//上传图片String uploadImage(MultipartFile file, String type);
}

upload.location = D:/upload

@Value("${upload.location}")private String uploadLocation;//文件上传路径@Overridepublic String uploadImage(MultipartFile file, String type) {//1.创建目录File dir = new File(uploadLocation + "/images/" + type);if (!dir.exists()) {boolean b = dir.mkdirs();//级联创建目录if (!b) {throw new F1Exception("级联创建目录异常");}}//2.给上传的文件起名LocalDateTime now = LocalDateTime.now();String fileName = now.format(DateTimeFormatter.ofPattern("yyyyMMddHHmmss"));Random random = new Random();int sid = random.nextInt(1000);//0~999fileName = fileName + "-" + sid;//3.拼扩展名String originalFileName = file.getOriginalFilename();//上传文件名//assert originalFileName != null;int idx = originalFileName.lastIndexOf(".");String ext = originalFileName.substring(idx);fileName = fileName + ext;//完整的文件名String fullName = dir.getAbsolutePath() + "/" + fileName;//要存储的目标文件File target = new File(fullName);//4.存储文件try {file.transferTo(target);} catch (IOException e) {throw new RuntimeException("保存文件失败");}//5.返回访问地址和存储地址return "/images/" + type + "/" + fileName;}

在这里插入图片描述
在这里插入图片描述
修正:图片中的回显操作并非通过interceptor,而是通过资源定位实现的

在这里插入图片描述
后记:这里的D:/upload完全可以用@Value注入

思路就是:
通过组件的action操作—后端api调用service操作—保存文件—前端回显访问baseUrl + /image/xxx这个链接 — 后端通过资源定位,将该链接定位到存放资源的位置

http://www.xdnf.cn/news/1341451.html

相关文章:

  • leetcode-python-242有效的字母异位词
  • 阿里巴巴推出Qoder:面向真实软件开发的智能编程平台
  • 计算机视觉(opencv)实战六——图像形态学(腐蚀、膨胀、开运算、闭运算、梯度、顶帽、黑帽)
  • 计算机视觉第一课opencv(三)保姆级教学
  • 大语言模型原理(Transformer架构)
  • c# 和 c++ 怎样结合
  • Chrome 插件开发实战:从入门到进阶
  • Docker:安装配置
  • 【框架篇二】FastAPI路由与请求处理
  • Linux 网络命令大全
  • uniapp 自定义组件封装、easycom匹配规则
  • 2025-08-21 Python进阶4——错误和异常
  • 用 Python 写的自动化测试 WPF 程序的一个案例
  • 【GaussDB】使用gdb定位GaussDB编译package报错
  • Spring Boot整合Amazon SNS实战:邮件订阅通知系统开发
  • 第三阶段数据库-6:sql中函数,多表查询,运算符,索引,约束
  • 我从零开始学微积分(2)- 函数与图形
  • 与森马品牌代言人王安宇专注日常力量,再启新常服故事
  • Qt二维码生成器项目开发教程 - 从零开始构建专业级QR码生成工具
  • 精算中的提升曲线(Lift Curve)与机器学习中的差别
  • Design Compiler:逻辑库名与逻辑库文件名及其指定方式
  • 交易高光时刻-01
  • langgraph快速搭建agent后端和react前端
  • springboot 启动后get请求任意接口地址会跳到登录页
  • 【TrOCR】模型预训练权重各个文件解读
  • 【Java集合】List,Map,Set-详细讲解
  • ODDR实现多bit单边沿采样数据转为多bit双沿采样数据
  • 效率跃迁 ,亚数TrustAsia 加速证书管理迈向 CaaS 新阶段
  • 意象驱动的深层语义:感知认知统一对自然语言处理与知识图谱的影响
  • 活性数据处理与标准化