保存到本地文件夹
| <form role="form" th:action="@{/upload}" method="post" enctype="multipart/form-data"> |
| |
| <input type="file" name="headerImg"> |
| |
| <input type="file" name="photos" multiple> |
| <button type="submit">提交</button> |
| </form> |
| |
| @PostMapping("/upload") |
| public String upload(@RequestPart("headerImg") MultipartFile headerImg, |
| @RequestPart("photos") MultipartFile[] photos) throws IOException { |
| |
| if(!headerImg.isEmpty()){ |
| |
| String originalFilename = headerImg.getOriginalFilename(); |
| headerImg.transferTo(new File("H:\\cache\\"+originalFilename)); |
| } |
| |
| if(photos.length > 0){ |
| for (MultipartFile photo : photos) { |
| if(!photo.isEmpty()){ |
| String originalFilename = photo.getOriginalFilename(); |
| photo.transferTo(new File("H:\\cache\\"+originalFilename)); |
| } |
| } |
| } |
| |
| return null; |
| } |
| |
| spring.servlet.multipart.max-file-size=10MB |
| spring.servlet.multipart.max-request-size=100MB |
| |
上传到服务器
- 业务逻辑:将文件上传到tomcat服务器,返回给前端一个路径;之后将这个路径存入数据库
| @RestController |
| @CrossOrigin |
| public class FileUpload { |
| |
| @RequestMapping("/upload") |
| public RespResult fileUpload(@RequestParam("file") MultipartFile file, HttpServletRequest req) { |
| try { |
| System.out.println("name+"+ file.getOriginalFilename()); |
| String[] split = file.getOriginalFilename().split("[.]"); |
| String hz = split[split.length -1]; |
| String replace = UUID.randomUUID().toString().replace("-", ""); |
| String url = getClass().getResource("/").getPath(); |
| System.out.println("url:" + url); |
| String path = replace + "." + hz; |
| String realPath = req.getServletContext().getRealPath("/"); |
| |
| System.out.println(realPath); |
| |
| file.transferTo(new File(realPath + File.separator + path)); |
| return RespResult.success(path); |
| } catch (IOException e) { |
| e.printStackTrace(); |
| return RespResult.error("文件上传异常"); |
| } |
| } |
| } |
| |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY