springboot上传文件比较简单,直接看例子。

单文件上传

页面的形式

页面代码:

<form action="/upload" method="POST" enctype="multipart/form-data">
<input type="file" name="file"/>
<input type="submit" value="上传">
</form>

java代码:

@RestController
public class UploadController {
@RequestMapping(value = "/upload",method = RequestMethod.POST,consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
public String fileUpload(@RequestParam("file") MultipartFile file) throws IOException {
System.out.println(file.getOriginalFilename());
File covertFile = new File("d:/" + file.getOriginalFilename());
covertFile.createNewFile();
FileOutputStream fout = new FileOutputStream(covertFile);
fout.write(file.getBytes());
fout.close();
return "file is upload successfully";
}
}

一个文件+一个参数

@RequestMapping(value = "/uploads",method = RequestMethod.POST,consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
public String fileUploads(@RequestParam("file") MultipartFile file [],@RequestParam("uid") String uid ) throws IOException {
for (String uid: uids) {
logger.info("uid:{}",uid);
}
logger.info("length:{}",uids.length);
for (MultipartFile file: files) {

String originalFilename = file.getOriginalFilename();
logger.info("originalFilename:{}",originalFilename);
File covertFile = new File("d:/" + file.getOriginalFilename());
covertFile.createNewFile();
FileOutputStream fout = new FileOutputStream(covertFile);
fout.write(file.getBytes());
fout.close();
}
return "file is upload successfully";
}

多文件+参数列表

@RequestMapping(value = "/uploads",method = RequestMethod.POST,consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
public String fileUploads(@RequestParam("files") MultipartFile files [],@RequestParam("uids") String[] uids ) throws IOException {
for (String uid: uids) {
logger.info("uid:{}",uid);
}
logger.info("length:{}",uids.length);
for (MultipartFile file: files) {

String originalFilename = file.getOriginalFilename();
logger.info("originalFilename:{}",originalFilename);
File covertFile = new File("d:/" + file.getOriginalFilename());
covertFile.createNewFile();
FileOutputStream fout = new FileOutputStream(covertFile);
fout.write(file.getBytes());
fout.close();
}
return "file is upload successfully";
}

其他

报错: Required request part ‘file’ is not present

是因为文件名不一致导致的。