前段代码如下:
<form id="updateImage" action="${pageContext.request.contextPath}/userInfo/UpdateImage" method="post" enctype="multipart/form-data">
<a href="javascript:;" class="cropper-file green_btn">上传本地照片
<input id="upload" type="file" value="上传照片" name="file" accept="image/jpg,image/png,image/gif,image/bmp,image/jpeg" />
</a>
</form>
enctype="multipart/form-data" ,为表单上传文件必须要加的。否则报错
js代码如下:
if(user!=null && user!=''){
$("#UpdateUserinfo").ajaxSubmit(function (data){
if(data>0){
window.location.href="${pageContext.request.contextPath}/userInfo/updateUserInfo_landlordByCode/${user.userCode }";
}else{
alert("修改失败");
}
});
}else{
alert("请先登录");
}
后台代码如下:
//图片上传
@RequestMapping("/UpdateImage")
public String UpdateImage(@RequestParam(value="file",required=false)MultipartFile file,HttpServletRequest request) throws ParseException {
System.out.println("=========>图片:"+file.getName()+",文件名:"+file.getOriginalFilename());
File targetFile=null;
Map<String, Object> map=new HashMap<String, Object>();
String msg="";//返回存储路径
int code=1;
String fileName=file.getOriginalFilename();//获取文件名加后缀
if(fileName!=null&&fileName!=""){
String returnUrl = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + request.getContextPath() +"/upload/imgs/";//存储路径
String path = request.getSession().getServletContext().getRealPath("statics/upload/imgs"); //文件存储位置
String fileF = fileName.substring(fileName.lastIndexOf("."), fileName.length());//文件后缀
fileName=new Date().getTime()+"_"+new Random().nextInt(1000)+fileF;//新的文件名
//判断文件是否存在
// String fileAdd = DateUtil.format(new Date(),"yyyyMMdd");
SimpleDateFormat fileAdd=new SimpleDateFormat("yyyyMMdd");
// File file1 =new File(path+"/"+fileAdd.parse(fileAdd.format(new Date())));
File file1 =new File(path);
//如果文件夹不存在则创建
if(!file1.exists() && !file1.isDirectory()){
System.out.println("创建文件夹!");
//file1.mkdir();
file1.mkdirs();
}
System.out.println("保存文件!");
targetFile = new File(file1, fileName);
try {
file.transferTo(targetFile);
msg=returnUrl+fileAdd+"/"+fileName;
code=0;
} catch (Exception e) {
e.printStackTrace();
}
System.out.println("文件存储路径:"+returnUrl+"新的文件名:"+fileName);
//数据保存至数据库
map = (Map)request.getSession().getAttribute("user");
map.put("headPortrait", request.getContextPath()+"/statics/upload/imgs/"+fileName);
map.put("userCode", map.get("userCode"));
uInfoService.UpdateUserInfoImage(map);
}
return "";
}