当前位置: 首页 > 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.dtcms.com/a/343434.html

相关文章:

  • 站长导航网站,网址导航网站大全,网址导航网站合集,网址导航网址目录,网址导航网站推荐,欢迎提交收录
  • ICMP 协议分析
  • 从零开发Java坦克大战Ⅱ (下)-- 从单机到联机(完整架构功能实现)
  • PostgreSQL15——管理表空间
  • 基于Matlab的饮料满瓶检测图像处理
  • 宝塔面板深度解析:从快速部署到高效运维的全流程指南
  • 联想电脑使用U盘装机时,开机按F12时无法显示USB设备启动方式
  • 【python】python测试用例模板
  • 智能制造——解读46页大型集团企业MOM系统解决方案【附全文阅读】
  • 同为科技(TOWE)桌面PDU产品系列全方位解读
  • springboot 启动后get请求任意接口地址会跳到登录页
  • Vue.js 中使用 Highcharts 构建响应式图表 - 综合指南
  • unity中实现机械臂自主运动
  • almalinux9.6系统:k8s可选组件安装(2)
  • 部署Qwen2.5-VL-7B-Instruct-GPTQ-Int3
  • 数据结构 -- 链表--双向链表的特点、操作函数
  • EEA架构介绍
  • CH347 USB转JTAG芯片 SVF下载程序
  • pandas扩展:apply自定义函数、分组进阶(五大核心)、透视表
  • C6.0:晶体管放大器的原理与应用(基极偏置篇)
  • 单词记忆-轻松记忆10个实用英语单词(13)
  • 【openGauss】1分钟掌握:openGauss活动会话CPU占用率获取
  • Java获取被nginx代理的emqx客户端真实ip
  • STM32F030/070芯片解密及应用
  • DAY 23|动态规划1
  • LeetCode234~258题解
  • 深入解析JUC线程间通信:使用ReentrantLock与Condition实现精准线程调度
  • 32、智能仓库管理与优化系统 (模拟) - /物流与仓储组件/warehouse-optimization-system
  • IPSec 与 IKE 核心知识点总结
  • 使用Python 创建虚拟环境的两种方式