1.配置本地的图片服务器在tomcat上配置图片虚拟目录,在tomcat下conf/server.xml中添加:
访问http://localhost:8080/pic即可访问F:developupload emp下的图片。也可以通过eclipse配置:
2.测试图片服务器是否可用
3.放开jsp图片部分
3.导入2个jar包
4.springmvc配置上传组件
5242880
5.controllercontroller接收到的图片不会存到mysql里。因为,多媒体的数据都比较大。没法很快的存入数据库,因为数据库把文件存在磁盘上,磁盘的io是很慢的。redis是分布式缓存,可以先把数据缓存起来,然后,慢慢的存。把图片单独存到图片服务器上,而图片的地址,存到数据库里。
@RequestMapping("/updateitem")
public String update(MultipartFile pictureFile, Items items, Model model) throws ServletException, IOException {
// 1.获取图片完整名称
String fileStr = pictureFile.getOriginalFilename();
// 2.使用随机生成的字符串+原图片扩展名组成新的图片名称,防止图片重名
String newFileName = UUID.randomUUID().toString() + fileStr.substring(fileStr.lastIndexOf("."));
// 3.将图片保存到硬盘
pictureFile.transferTo(new File("E:\image\" + newFileName));
// 4.将图片名称保存到数据库
items.setPic(newFileName);
items.setCreatetime(new Date());
itemsService.updateItems(items);
model.addAttribute("id", items.getId());
return "redirect:itemEdit.action";
}
注意:这里的pictureFile要和jsp里面的对应
6.测试
源码