只需要一个maven依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
加上下面的代码
/** * 上传头像 * @param response */ @PostMapping(value="/uploadHeadPicture") public String uploadHeadPicture(@RequestParam("file") MultipartFile multipartFile, HttpServletRequest request, HttpServletResponse response) throws IOException { String fileName = UUID.randomUUID() + this.getExtension(multipartFile.getOriginalFilename()); long fileLength = multipartFile.getSize(); if( fileLength > 2*1024*1024 ){ return "size error"; } String path = "/Users/apple/Desktop/"; FileInputStream fileInputStream = (FileInputStream) multipartFile.getInputStream(); BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(path + File.separator + fileName)); byte[] bs = new byte[1024]; int len; while ((len = fileInputStream.read(bs)) != -1) { bos.write(bs, 0, len); } bos.flush(); bos.close(); return "ok"; } /** * * @param file * @return .txt */ public String getExtension(String file) { String extension = null; int i = file.lastIndexOf("."); if (i > 0 && i < file.length() - 1) { extension = file.substring(i).toLowerCase(); } return extension; }
以上即可完成springboot的文件上传。网上其它的配置不需要
不需要的依赖
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.3.1</version>
</dependency>
也不需要配置临时文件路径
custom:
tmpLocation: /Users/apple/Desktop/
@Configuration
public class WebConfig extends WebMvcConfigurerAdapter {
/**
* 在配置文件中配置的文件保存路径
*/
@Value("${custom.tmpLocation}")
private String tmpLocation;
@Bean
public MultipartConfigElement multipartConfigElement(){
MultipartConfigFactory factory = new MultipartConfigFactory();
//文件最大KB,MB
factory.setMaxFileSize("2MB");
//设置总上传数据总大小
factory.setMaxRequestSize("10MB");
factory.setLocation(tmpLocation);
return factory.createMultipartConfig();
}
}