文件上传后端代码
文件上传
文件上传可以使用Part或者MultipartFile类实现,Part是Servlet中的类,而MultipartFile是spring框架中的类
1.使用Part上传文件
@PostMapping("/uploadFileMultipart")
public String uploadFileMultipart(MultipartFile file) throws IOException {
file.transferTo(new File("D:\\home\\image\\mulpartImage.jpg"));
return null;
}
@PostMapping("/uploadPart")
public String uploadPart(HttpServletRequest request) throws IOException, ServletException {
Part file = request.getPart("file");
file.write("D:\\home\\image\\part.jpg");
return null;
}
2.使用Multipart.transferTo或者Multipart的输入流上传文件
@PostMapping(value = "/uploadFile")
public String upLoadFile(HttpServletRequest request) throws IOException, ServletException {
MultipartFile multipartFile = ((MultipartHttpServletRequest) request).getFile("file");
//使用输入流读写文件
FileInputStream input = null;
FileOutputStream out = null;
try {
input = (FileInputStream) multipartFile.getInputStream();
out = new FileOutputStream("D:\\home\\image\\mulInput.jpg");
byte[] data = new byte[8192];
int len = 0;
while ((len = input.read(data))!=-1){
out.write(data,0,len);
}
}catch (IOException e){
e.printStackTrace();
}finally {
input.close();
out.close();
}
System.out.println(multipartFile.getOriginalFilename());
//使用transferTo方法上传文件
multipartFile.transferTo(new File("D:\\home\\image\\mulTransferTo.jpg"));
return null;
}
3.直接上传base64编码字符串
4.在使用实体类中设置MultipartFile属性的方式
这种方式需要去除@RequestBody注解
@PostMapping("/uploadByForm")
public void uploadFile( FileUploadForm form) throws IOException {
MultipartFile file = form.getFile();
file.transferTo(new File("D:\\form.jpg"));
}
5.springboot对上传文件大小做了限制,可以通过配置解除
#设置文件上传大小限制
servlet:
multipart:
max-file-size: 100MB #单个文件最大限制
max-request-size: 200MB #总文件最大限制

浙公网安备 33010602011771号