@RequestMapping("/addProduct")
public String addProduct(@Valid Product product,@RequestParam("file")CommonsMultipartFile[] files,HttpServletRequest request) throws IOException {
String uuid = UUIDUtils.create();
if(files.length>0){
for (int i=0;i<files.length;i++){
String realPath = request.getSession().getServletContext().getRealPath("/static-houtai/upload");
File filePath = new File(realPath);
if(!filePath.exists()){
filePath.mkdir();
}
files[i].transferTo(new File(filePath+"/"+uuid+files[i].getOriginalFilename()));
if(i==0){
product.setPicture("static-houtai/upload/"+uuid+files[i].getOriginalFilename());
}
if(i==1){
product.setPicture1("static-houtai/upload/"+uuid+files[i].getOriginalFilename());
}
if(i==2){
product.setPicture2("static-houtai/upload/"+uuid+files[i].getOriginalFilename());
}
if(i==3){
product.setPicture3("static-houtai/upload/"+uuid+files[i].getOriginalFilename());
}
}
}
product.setIsdelete(0);
productService.insert(product);
return "redirect:/admin/product/getProducts";
}
<td class="center"><img src="${product.picture}" width="70px" height="50px"/></td>
自己的错误:
这个是自己文件上传的位置:
request.getSession().getServletContext().getRealPath("/static-houtai/upload");
需要注意的是
product.setPicture("/static-houtai/upload/"+uuid+files[i].getOriginalFilename());
向数据库传的路径要根据自己的需求上传(注意,不小心在这里踩了坑)
刚开始直接上传了文件的绝对路径 导致后面jsp页面读取的时候是按相对地址读取的。
自己前面有如下的地址,简直绝望,因为是引入的也没太注意
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<c:set var="path" value="${pageContext.request.contextPath}"/>
<%
String basePath = request.getScheme()
+ "://"
+ request.getServerName()
+ ":"
+ request.getServerPort()
+ request.getContextPath()
+ "/";
System.out.println(request.getSession().getServletContext().getRealPath("/static-houtai/upload"));
System.out.println(request.getServletContext().getRealPath("/"));
%>
<!--写base标签,永远固定相对路径跳转的结果-->
<base href="<%=basePath%>">