Spring boot的上传文件

    科技2025-05-29  8

    Spring boot的上传文件

    配置文件上传的文件大小以及位置上传的方法注意调用上传方法 spring boot 工程已经打包添加了multipart.MultipartFile; 依赖,

    配置文件上传的文件大小以及位置

    (小白一个,请指教)

    application.yml 的配置

    spring servlet: multipart: max-file-size: 20MB max-request-size: 20MB location: D://image #(你的路径可不填)

    上传的方法

    在component 添加上传的方法 可以调用上传的方法。不用每个Controller都写。

    package com.example.springbook.componet; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; import org.springframework.web.multipart.MultipartFile; import javax.servlet.http.HttpServletRequest; import java.io.File; import java.io.IOException; import java.text.SimpleDateFormat; import java.util.Date; import java.util.Random; @Component public class Compoent { /** * 上传文件的名称 */ public static String filename; public static Integer current=1; public static int number=0; /** * 上传方法 * * @param image * @param request */ public static void uploadFile(MultipartFile image, HttpServletRequest request) { if (!image.isEmpty()) { //上传相应的位置 String path = request.getServletContext().getRealPath("/resources/static/image"); System.out.println("上传我位置:" + path); File file = new File(path); //判处路径是否存在 if (!file.exists()) { file.mkdirs(); } SimpleDateFormat df = new SimpleDateFormat("yyyyMMddHHmmss"); filename = df.format(new Date()) + image.getOriginalFilename(); System.out.println(filename); // 将上传文件保存到相应位置 try { image.transferTo(new File(path + File.separator + filename)); // image.transferTo(file); } catch (IOException e) { e.printStackTrace(); } } } /** * //每天凌晨四点执行 * 返回随机页数 */ @Scheduled(cron = "0 0 4 * * ?") public static void currentPage(int cu){ number++; System.out.println(number); if (cu/15>1){ current=new Random().nextInt((cu/15)+1)+1; System.out.println(current); } } }

    注意

    如果application 没用配置文件,springboot 上传的路径可能会上传到临时文件夹(报错)。这时你可以创建webapp或static文件夹在项目的根目录,可以达到上传到项目文件里。

    上传的Html 的from 表单 需要添加 enctype=“multipart/form-data” 。

    调用上传方法

    例如: 在Controlller 的简单的上传

    @RequestMapping(value = "/upload.do",method = RequestMethod.POST) public String upload(HttpServletRequest request, User user, @RequestParam("file")MultipartFile file) { if (!file.isEmpty()){ Compoent.uploadFile(file,request); String imageurl="/static/image/"+Compoent.filename;; System.out.println(imageurl); return "listImage"; // return "success"; }else { return "error"; } }

    上传项目图片的地址到数据库

    /** * 用户图片修改 * @param userId * @param file * @param request * @return */ @RequestMapping("/userImage.do") public String userImage(Integer userId, MultipartFile file, HttpServletRequest request) { if (file!=null){ Compoent.uploadFile(file,request); //图片地址 String imageurl = localhost + ":" + port + "/static/image/" + Compoent.filename; boolean aBoolean=userService.updateImageByUserId(userId,imageurl); if (aBoolean){ return "图片修改成功,Success!" } } return "修改失败,非法输入,输入的值为空,error!"; }

    如果出现上传到临时文件 ;路径:“C:\Users\admin\AppData\Local\Temp\tomcat.1760054768116885118.1105” 时; 可以配置 working directory

    Processed: 0.008, SQL: 8