文件的上传
文件的上传是一个重要的功能,在开发中经常使用。而且在servlet和SSM中都有,springboot和二者相似,但也有些许不同
前台表单
<form role="form" th:action="@{/upload}" method="post" enctype="multipart/form-data">
<div class="form-group">
<label for="exampleInputEmail1" >Email address</label>
<input name="imageAddress" type="email" class="form-control" id="exampleInputEmail1" placeholder="Enter email">
</div>
<div class="form-group">
<label for="exampleInputPassword1">Password</label>
<input name="password" type="password" class="form-control" id="exampleInputPassword1" placeholder="Password">
</div>
<div class="form-group">
<label for="exampleInputFile">File input</label>
<input name="file" type="file" id="exampleInputFile">
<p class="help-block">Example block-level help text here.</p>
</div>
<div class="form-group">
<label for="exampleInputFile">File input</label>
<input name="files" type="file" multiple >
<p class="help-block">Example block-level help text here.</p>
</div>
<div class="checkbox">
<label>
<input type="checkbox"> Check me out
</label>
</div>
<button type="submit" class="btn btn-primary">Submit</button>
</form>
注意:表单后边需要加上enctype=“multipart/form-data”,多文件上传加上 multiple
后台
@PostMapping("/upload")
//文件参数匹配 @RequestPart("file")
public String upload(@RequestParam("imageAddress") String address,
@RequestParam("password") String password,
@RequestPart("file") MultipartFile file,
@RequestPart("files") MultipartFile[] files
) throws IOException {
log.info("图片上传地址:{},图片上传密码:{}",address,password);
log.info("单个文件{},多个文件{}",file.getSize(),files.length);
if(!file.isEmpty()){
//获取原始文件名
String originalFilename = file.getOriginalFilename();
//保存到本地D盘
file.transferTo(new File("D:\\image\\"+originalFilename));
}
if(files.length>0){
for (MultipartFile multipartFile : files) {
//同单个文件保存
String originalFilename = multipartFile.getOriginalFilename();
multipartFile.transferTo(new File("D:\\image\\"+originalFilename));
}
}
return "index";
}
上传文件设置
设置上传的大小
文件操作编程思路
一般把上传的文件保存到服务器,然后把路径存储到数据库。