1.配置springmvc.xml的配置文件
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"
p:defaultEncoding="utf-8"
p:maxUploadSize="21474836480"
>
</bean>
1.设置默认字符编码
p:defaultEncoding="utf-8"
2.设置最大上传大小 单位默认为b 这里是20g
p:maxUploadSize="21474836480"
注意不要漏掉id 否则jsp页面传值报错误。
2.前端表单
<form action="updateFile" method="post" enctype="multipart/form-data">
<input type="file" name="file" id="file" value="" />
<input type="submit" value="上传文件"/>
</form>
注意 不要漏掉enctype=“multipart/form-data” 否则传值报错
3.控制器层
@RequestMapping("/add")
public String add(Goods goods, @RequestParam("file") MultipartFile file, HttpServletRequest request) throws IOException {
//读取服务器里面的存放文件文件夹的路径
String path = request.getSession().getServletContext().getRealPath("img");
System.out.println(path);
// oos云盘
File f = new File(path);
if (!f.exists()) {
f.mkdirs();
}
String uuid = UUID.randomUUID().toString();
File f1 = new File(path + "/" + uuid + file.getOriginalFilename().substring(file.getOriginalFilename().indexOf("."), file.getOriginalFilename().length()));
f1.createNewFile();
FileCopyUtils.copy(file.getBytes(), f1);
goods.setUrl(path + "/" + uuid + file.getOriginalFilename().substring(file.getOriginalFilename().indexOf("."), file.getOriginalFilename().length()));
goods.setFilename(file.getOriginalFilename());
goods.setUrls("/img/" + uuid + file.getOriginalFilename().substring(file.getOriginalFilename().indexOf("."), file.getOriginalFilename().length()));
//设置默认商品图片路由
goods.setGood_img("/img/" + uuid + file.getOriginalFilename().substring(file.getOriginalFilename().indexOf("."), file.getOriginalFilename().length()));
goodsService.add(goods);
return "redirect:/goods/list";
}
4.jsp页面显示
<img src="${pageContext.request.contextPath}${e.good_img}"/>
只需项目路由和图片路由即可