(jsp需要引入 :jquery-1.9.0.js、jquery.form.js ) ,jsp页面使用的是bootstrap制作的,看不懂的标签不用管,form表单大同小异。代码比较简陋,只是为了演示使用ajaxSubmit异步上传图片及保存数据,请海含! (参考文献:http://www.jb51.net/shouce/jquery/jquery_api/Plugins/Form/ajaxSubmit.html ) 一:web (add.jsp)
pageEncoding="utf-8"%>
注册商圈 response.setCharacterEncoding("utf-8");//这个是设置编码方式
response.setContentType("text/html");//这个是设置网页类型,为文本代码
UserInformation user=null;
String username="";
Integer userId=null;
if(request.getSession().getAttribute("userinfo")!=null){
user=(UserInformation)request.getSession().getAttribute("userinfo");
username=user.getUsername();
userId=user.getUserId();
}else{
username="请
登录 ";
}
%>
二:service(FileUploadController.java ----springMVC 之controller层)
@Controller @RequestMapping(value = "/upload") public class FileUploadController { private Logger logger; @RequestMapping(value = "upload.do", method = RequestMethod.POST) public void fileUpload(HttpServletRequest request, HttpServletResponse response) { Map resultMap = new HashMap(); String newRealFileName = null; try { MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request; CommonsMultipartFile file = (CommonsMultipartFile) multipartRequest.getFile("file"); // 获得文件名: String realFileName = file.getOriginalFilename(); if(file.getSize()/1024>=5*1024){ resultMap.put("status", 1); resultMap.put("message", "图片不能大于5M"); }else{ System.out.println("获得文件名:" + realFileName); newRealFileName = FileUploadController.getNowTime() + realFileName.substring(realFileName.indexOf(".")); // 获取路径 String ctxPath = request.getSession().getServletContext().getRealPath("//") + "//temp//"; // 创建文件 File dirPath = new File(ctxPath); if (!dirPath.exists()) { dirPath.mkdir(); } File uploadFile = new File(ctxPath + newRealFileName); FileCopyUtils.copy(file.getBytes(), uploadFile); request.setAttribute("files", loadFiles(request)); resultMap.put("status", 0); resultMap.put("fileName", newRealFileName); } } catch (Exception e) { resultMap.put("status", 1); resultMap.put("message", "图片上传出错"); logger.info("***** 图片上传出错 *****"); System.out.println(e); } finally { PrintWriter out = null; try { out = response.getWriter(); } catch (IOException e) { e.printStackTrace(); } //必须设置字符编码,否则返回json会乱码 response.setContentType("text/html;charset=UTF-8"); out.write(JSONSerializer.toJSON(resultMap).toString()); out.flush(); out.close(); } } }