Field error in object 'xxxx' on field 'xxxx': rejected value [20129259128131.jpg];
出现类似错误,检查form表单属性是否写上enctype="multipart/form-data"。
upload.jsp
<form action="fileupdown/checkFileUpload" method="POST" enctype="multipart/form-data">
File: <input type="file" name="file"/>
Desc: <input type="text" name="desc"/>
<input type="submit" value="上传数据"/>
</form>
/**
* 证件管理之上传证件
* @param file
* @param request
* @param response
* @return
*/
@RequestMapping("/upfile")
public String upWorkerCard(MultipartFile file,HttpServletRequest request,HttpServletResponse response){
String DIRpath = request.getSession().getServletContext().getRealPath("/upload/workerCard");
System.out.println(DIRpath);
if(file!=null){
//String fileName = file.getOriginalFilename();
String contentType = file.getContentType();
String suffixName=contentType.substring(contentType.indexOf("/")+1);
long fileName1 =new Date().getTime();
int rd = (int)((Math.random()*9+1)*100000);
String filename = String.valueOf(fileName1)+rd+"."+suffixName;
System.out.println(filename);
File targetFile = new File(DIRpath, filename);
if(!targetFile.exists()){
targetFile.mkdirs();
}
//保存
try {
file.transferTo(targetFile);
} catch (Exception e) {
e.printStackTrace();
}
String sqlPath ="/upload/workerCard/"+filename;
System.out.println(sqlPath);
HttpSession session = request.getSession();
if( (Integer)session.getAttribute("projectWorktypeId")>0){
Worker worker = new Worker();
if((Integer)session.getAttribute("id")>0 ){
Integer id = (Integer)session.getAttribute("id");
Integer projectWorktypeId =(Integer)session.getAttribute("projectWorktypeId");
worker.setId(id);
worker.setProjectWorktypeId(projectWorktypeId);
List<Worker> workerList =workerService.findAllWorkerByWhere(worker);
if(workerList!=null){
workerList.get(0).setWorkerScanFront(sqlPath);
workerList.get(0).setWorkerScanBack(sqlPath);
System.out.println("list:"+workerList.toString());
int i = workerService.updateSqlpath(workerList.get(0));
if(i>0){
request.setAttribute("workerList", workerList);
return "worker/checkCard";
}
return "404";//更新图片路径失败
}
return "404";//查询结果为0条数据
}
return "404";//id为空
}
return "log/userLog";//TODO projectWorktypeId为空,应重新登录
}
return "404";//file图片为空
}
另:java上传图片
public void uploadFile(HttpServletRequest req,HttpServletResponse resp){
//临时文件夹
File tempDir = new File(req.getSession().getServletContext().getRealPath("/WEB-INF/temp"));
//第一个参数为单个文件最大大小
DiskFileItemFactory diskFileItemFactory = new DiskFileItemFactory(4 * 1024 * 1024,tempDir);
ServletFileUpload fileUpload = new ServletFileUpload(diskFileItemFactory);
List<DiskFileItem> files;
try {
files = fileUpload.parseRequest(req);
DiskFileItem file = files.get(0);
if(file.getSize()<=0)
{
resp.getWriter().println("必须选择一个文件");
return;
}
String fileName = file.getName();
String fileExt = FilenameUtils.getExtension(fileName).toLowerCase();
if(!fileExt.equals("jpeg")&&!fileExt.equals("jpg")&&!fileExt.equals("png"))
{
resp.getWriter().println("只能上传图片");
return;
}
File destFile = new File(req.getSession().getServletContext().getRealPath("upload/"+fileName));
if(!destFile.exists()){
destFile.mkdirs();
}
FileOutputStream osDest = new FileOutputStream(destFile);
IOUtils.copy(file.getInputStream(), osDest);
IOUtils.closeQuietly(osDest);
} catch (Exception e) {
e.printStackTrace();
}
}