上传初级
添加依赖:
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.4</version>
</dependency>
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.3.1</version>
</dependency>
前台html代码
<form action="/updateimg" method="post" enctype="multipart/form-data">
<table border="1px solid red">
<tr>
<td>文件1</td>
<td>
<input name="file" type="file"/>
</td>
</tr>
<tr>
<td></td>
<td>
<input type="submit" value="提交"/>
</td>
</tr>
</table>
</form>
后台 控制层代码
@RequestMapping("updateimg")
@ResponseBody
public int UpdateImg(@RequestParam(value="file",required=false) MultipartFile[] file ) throws IOException {
String s = editorImg.UploadImg(file);
//注意这里我返回的是 上传成功后图片的名称
System.out.println(s);
//获得图片名字后存储到数据库中
return mk_useService.UpdateUseImg(s);
}
封装的图片上传代码
//普通的上传图片
public String UploadImg(MultipartFile[] file) throws IOException {
//定义序号
int count=1;
for (MultipartFile mf : file) {
if(!mf.isEmpty()){
// 使用UUID给图片重命名,并去掉四个“-”
String name = UUID.randomUUID().toString().replaceAll("-", "");
// 获取文件的扩展名
String ext = FilenameUtils.getExtension(mf.getOriginalFilename());
// 设置图片上传路径
String url="D:/BaiduNetdiskDownload/";
//设置图片新的名字
String fileName=name+"."+ext;
// 以绝对路径保存重名命后的图片
File targeFile=new File(url,fileName);
mf.transferTo(targeFile);
// 把图片存储路径保存到数据库
return url+fileName;
}
count++;
}
return null;
}
配置图片存放的虚拟路径
@Configuration
public class MyWebConfigurer implements WebMvcConfigurer {
//配置虚拟路径
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/img/**").addResourceLocations("file:D:/BaiduNetdiskDownload/");
}
}
显示图片 上面我们把图片的url存放到数据库里面
@RequestMapping("show")
public String show(Model model)
{
List<Photo> all = PhotoService.findAll();
model.addAttribute("list",all);
return "index";
}
显示图片的html页面
<table border="1px solid red" align="center">
<tr>
<th>头像</th>
</tr>
<tr th:each="a:${list}">
<!--获取th里面的内容必须用th获取-->
<td>
<img th:src="${a.url}">
</td>
</tr>
</table>