一、文件配置
- application.properties中增加下面配置
#文件上传和访问需要指定磁盘路径 web.images-path=F:\ spring.resources.static-locations=classpath:/META-INF/resources/,classpath:/resources/,classpath:/static/,classpath:/public/,classpath:/test/,file:${web.upload-path}
- 文件上传大小配置(选)
启动类 添加加以下方法://文件大小配置,启动类里面配置,设置单个文件大小 @Bean public MultipartConfigElement multipartConfigElement() { MultipartConfigFactory factory = new MultipartConfigFactory(); //单个文件最大 factory.setMaxFileSize(DataSize.parse("10240")); //KB,MB /// 设置总上传数据总大小 factory.setMaxRequestSize(DataSize.parse("1024000KB")); return factory.createMultipartConfig(); }
二、代码书写
-
文件上传代码
controller层,这里的两个自定义的文件上传路径,
第一个路径是在resources
下的static
文件夹下新建一个文件夹images
,储存上传的文件;第二个路径是客户端上传文件的路径,可自定义路径;使用客户端时,需要打包,在cmd中运行jar包;
附: 打成jar包需要maven依赖<!--打包成jar包,需要增加maven依赖--> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin>
/** * 文件上传 */ @RestController public class FileController { //文件上传到的路径 private String filePath = "E:\\实训项目\\AJax\\spring\\spring_boot01\\src\\main\\resources\\static\\images\\"; //客户端文件上传路径 // private String filePath = "F:\\"; @PostMapping("/upload") public Object upload(MultipartFile upload, HttpServletRequest request){ String name = request.getParameter("name"); System.out.println("当前上传的人是:" + name); //1.获取文件上传的文件名 String fileName = upload.getOriginalFilename(); System.out.println("文件名称是:" + fileName); //2.获取文件的后缀 String suffixName = fileName.substring(fileName.lastIndexOf(".")); System.out.println("该文件后缀名是:" + suffixName); //3.获取文件上传后的路径 fileName = UUID.randomUUID() + suffixName; File path = new File(filePath + fileName); //4.开始上传 try { upload.transferTo(path); return new JsonData(0,fileName); } catch (IOException e) { e.printStackTrace(); } return new JsonData(-1,"上传失败",null); } }
-
浏览器测试