在前端网页要进行页面上传需具备三个条件
1. post提交
2.具备file组件
3.设置表单的enctype="mutipart/form-data"(二进制提交) , 默认表单的entype是x-www-urlencoding
<form action="/creat" method="post" enctype="multipart/form-data">
<div>
<input type="file" id="phone" name="photo"/><input type="submit"/>
</div>
</form>
在Controller中 使用MultipartFile接口 接收参数 ,为防止重名可用时间戳来定义文件名;通过FileCopyUtils文件操作类来将文件进行复制
@Controller
public class fileController {
@PostMapping( value = "/creat")
public String creat(@RequestParam("photo") MultipartFile photo) throws Exception {//MultipartFile是上传文件接口,对应了保存的临时文件;参数名与前端name保持一致
String path="d:/upload";
//防止文件重名覆盖,定义时间戳加在文件名之前
String filename= new SimpleDateFormat("yyyyMMddHHmmssSSS").format(new Date());
//截取至最后一个 . 也就是把后缀前面给截去掉
String suffix = photo.getOriginalFilename().substring(photo.getOriginalFilename().lastIndexOf("."));
//判断上传的文件格式
if(suffix!="jpg"){
throw new RuntimeException("图片格式异常");
}
FileCopyUtils.copy(photo.getInputStream(),new FileOutputStream(path+"/"+filename+suffix));
return "end";
}
}
配置最大文件上传尺寸
#单个文件最大上传尺寸 (默认2MB)
spring.servlet.multipart.max-file-size=10
#一次请求与最大上传尺寸 (默认10B)
spring.servlet.multipart.max-request-size=50