在前端网页要进行页面上传需具备三个条件
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 IOException {//MultipartFile是上传文件接口,对应了保存的临时文件;参数名与前端name保持一致
//设置保存路径
String path="d:/upload";
//防止文件重名覆盖,定义时间戳加在文件名之前
String filename= new SimpleDateFormat("yyyyMMddHHmmssSSS").format(new Date());
//截取至最后一个 . 也就是把后缀前面给截去掉
String suffix = photo.getOriginalFilename().substring(photo.getOriginalFilename().lastIndexOf("."));
FileCopyUtils.copy(photo.getInputStream(),new FileOutputStream(path+"/"+filename+suffix));
return "end";
}
}