news 2026/5/12 14:40:23

springboot中简单实现文件上传功能

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
springboot中简单实现文件上传功能
废话不多说直接上代码
package com.example.back.controller; import ch.qos.logback.core.util.FileUtil; import com.example.back.common.Result; import com.example.back.exception.BusinessException; import jakarta.servlet.http.HttpServletResponse; import jakarta.websocket.server.PathParam; import lombok.extern.slf4j.Slf4j; import org.apache.tomcat.util.http.fileupload.FileUtils; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import java.io.File; import java.io.IOException; import java.io.OutputStream; import java.net.URLEncoder; import java.nio.charset.StandardCharsets; import java.util.UUID; @RestController @RequestMapping("/files") @Slf4j public class FileController { public static final String UPLOAD_PATH = System.getProperty("user.dir"); //拿到当前项目路径 @PostMapping("/upload") public Result upload(@PathParam("file") MultipartFile file) { //上传路径 选择跟随项目目录 String path = UPLOAD_PATH + "/file/"; //获取文件名,加上唯一表示 String file_name = UUID.randomUUID().toString() + "_" + file.getOriginalFilename(); //创建目录 File file_path = new File(path); //如果文件不存在,创建这个路径 避免不存在文件但是添加文件报错 if (!file_path.exists()){ file_path.mkdirs(); } try { file.transferTo(new File(file_path,file_name)); } catch (Exception e) { e.printStackTrace(); } return Result.success("上传成功",path+file_name); }

具体作用有注解,,这里简单概述一下

1.拿到当前项目跟目录,当然你也可以不拿,这里是文件跟随项目,所以拿到文件目录拼接具体文件存放目录

2.拿到文件名,拼接一个唯一标识 因为文件中不能重复存放文件名相同的文件嘛,uuid,时间戳,文件层级等等

3.创建目录,判断目录是否存在,不存在添加文件会报错

4.file.transferTo(new File(file_path,file_name));

测试结果

postman中选择form-data,value左边有一个下拉箭头选择file 然后点击select file key为:controler中@pathparam的值

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/12 14:37:09

3分钟掌握微信聊天记录永久保存:从数据备份到智能分析完全攻略

3分钟掌握微信聊天记录永久保存:从数据备份到智能分析完全攻略 【免费下载链接】WeChatMsg 提取微信聊天记录,将其导出成HTML、Word、CSV文档永久保存,对聊天记录进行分析生成年度聊天报告 项目地址: https://gitcode.com/GitHub_Trending/…

作者头像 李华
网站建设 2026/5/12 14:35:09

Funannotate 部署中的系统兼容性挑战:实用应对策略

Funannotate 部署中的系统兼容性挑战:实用应对策略 【免费下载链接】funannotate Eukaryotic Genome Annotation Pipeline 项目地址: https://gitcode.com/gh_mirrors/fu/funannotate 在分布式系统配置和跨平台兼容的实际应用中,基因组注释管道的…

作者头像 李华
网站建设 2026/5/12 14:31:23

Python实现蓝德VOTOL控制器串口通信协议解析

# Python实现蓝德VOTOL控制器串口通信协议解析## 前言 蓝德(VOTOL)控制器是国内电摩领域广泛使用的电机控制器,本文介绍如何使用Python解析其串口通信协议,实现数据读取与参数监控。## 硬件准备 - USB转TTL模块(CH340/…

作者头像 李华
网站建设 2026/5/12 14:29:14

3步搞定专业PPT:PPTist在线幻灯片编辑器完全指南

3步搞定专业PPT:PPTist在线幻灯片编辑器完全指南 【免费下载链接】PPTist PowerPoint-ist(/pauəpɔintist/), An online presentation application that replicates most of the commonly used features of MS PowerPoint, allowing for the…

作者头像 李华