kindeditor上传文件在SpringMVC中servletFileUpload.parseRequest(request)解析为空获取不到数据问题 .
来源:互联网 发布:rar解压软件下载官方 编辑:程序博客网 时间:2024/04/30 07:23
版权声明:本文为博主原创文章,未经博主允许不得转载。
最近用kindeditor做上传文件,老是在List items = upload.parseRequest(request);取不到值,查了一些资料有注释multipartResolver的,注释之后倒是好用,但是之前用multipartResolver做的上传就没法用了,自己修改后解决方法如下:
1.multipartResolver配置文件不用注释,也不用重写org.springframework.web.multipart.commons.CommonsMultipartResolver。
2.controller中的方法如下:
@RequestMapping("/uploadFile") public void uploadFile( HttpServletRequest request, HttpServletResponse response) throws IOException { MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request; Map<String, MultipartFile> fileMap = multipartRequest.getFileMap(); PrintWriter out = response.getWriter(); //文件保存目录路径// String savePath = pageContext.getServletContext().getRealPath("/") + "attached/"; String savePath = Global.UPLOAD_FOLDER + File.separator + "kindeditor/"; // 完整路径 //文件保存目录URL String saveUrl = request.getContextPath() + "/rest/por/kindeditorManager/show?templateName=";// String saveUrl = Global.UPLOAD_FOLDER + File.separator + "kindeditor/"; //定义允许上传的文件扩展名 HashMap<String, String> extMap = new HashMap<String, String>(); extMap.put("image", "gif,jpg,jpeg,png,bmp"); extMap.put("flash", "swf,flv"); extMap.put("media", "swf,flv,mp3,wav,wma,wmv,mid,avi,mpg,asf,rm,rmvb"); extMap.put("file", "doc,docx,xls,xlsx,ppt,htm,html,txt,zip,rar,gz,bz2"); //最大文件大小 long maxSize = 1000000; response.setContentType("text/html; charset=UTF-8"); if(!ServletFileUpload.isMultipartContent(request)){ out.println(getError("请选择文件。")); return; } //检查目录 File uploadDir = new File(savePath); if(!uploadDir.isDirectory()){ //如果不存在,创建文件夹 if (!uploadDir.exists()){ uploadDir.mkdirs(); } else{ out.println(getError("上传目录不存在。")); return; } } //检查目录写权限 if(!uploadDir.canWrite()){ out.println(getError("上传目录没有写权限。")); return; } String dirName = request.getParameter("dir"); if (dirName == null) { dirName = "image"; } if(!extMap.containsKey(dirName)){ out.println(getError("目录名不正确。")); return; } //创建文件夹 savePath += dirName + "/"; saveUrl += dirName + "/"; File saveDirFile = new File(savePath); if (!saveDirFile.exists()) { saveDirFile.mkdirs(); } SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd"); String ymd = sdf.format(new Date()); savePath += ymd + "/"; saveUrl += ymd + "/"; File dirFile = new File(savePath); if (!dirFile.exists()) { dirFile.mkdirs(); } //此处是直接采用Spring的上传 for (Map.Entry<String, MultipartFile> entity : fileMap.entrySet()) { MultipartFile mf = entity.getValue(); String fileFullname = mf.getOriginalFilename(); fileFullname = fileFullname.replace('&', 'a'); fileFullname = fileFullname.replace(',', 'b'); fileFullname = fileFullname.replace(',', 'c'); //检查扩展名 String fileExt = fileFullname.substring(fileFullname.lastIndexOf(".") + 1).toLowerCase(); if(!Arrays.<String>asList(extMap.get(dirName).split(",")).contains(fileExt)){ out.println(getError("上传文件扩展名是不允许的扩展名。\n只允许" + extMap.get(dirName) + "格式。")); return; } SimpleDateFormat df = new SimpleDateFormat("yyyyMMddHHmmss"); String newFileName = df.format(new Date()) + "_" + new Random().nextInt(1000) + "." + fileExt; File uploadFile = new File(savePath + newFileName); try { FileCopyUtils.copy(mf.getBytes(), uploadFile); JSONObject obj = new JSONObject(); obj.put("error", 0); obj.put("url", saveUrl + newFileName); out.println(obj.toJSONString()); } catch (IOException e) { e.printStackTrace(); out.println(getError("上传文件失败。")); return; } } //上传结束 }
这样写就ok了希望对你有帮助。
0 0
- kindeditor上传文件在SpringMVC中servletFileUpload.parseRequest(request)解析为空获取不到数据问题 .
- SpringMVC中servletFileUpload.parseRequest(request)解析为空获取不到数据问题
- SpringMVC中servletFileUpload.parseRequest(request)解析为空获取不到数据问题
- SpringMVC中servletFileUpload.parseRequest(request)解析为空获取不到数据问题
- SpringMVC中servletFileUpload.parseRequest(request)解析为空获取不到数据问题
- SpringMVC中servletFileUpload.parseRequest(request)解析为空获取不到数据问题
- SpringMVC中servletFileUpload.parseRequest(request)解析为空获取不到数据问题
- servletFileUpload.parseRequest(request)解析为空获取不到数据问题
- struts2 上传文件 parseRequest()解析request为空 解决办法
- struts2 上传文件 parseRequest()解析request为空 解决办法
- struts2 上传文件 parseRequest()解析request为空 解决办法
- struts2 上传文件 parseRequest()解析request为空 解决办法
- sturts2和kindeditor的文件上传,upload.parseRequest(request)得到的List为空
- struts2上传文件ServletFileUpload解析request为空的三种解决方案
- Android+struts上传文件时upload.parseRequest(request)为空
- SpringMVC + Kindeditor时List items = upload.parseRequest(request);为空
- 遇到问题-----uploadify上传文件ServletFileUpload.isMultipartContent(request)为false
- parseRequest(request)为空的问题
- 提取微信小视频方法
- 数据设计+实践+SQL优化
- 欢迎使用CSDN-markdown编辑器
- Redis学习笔记
- jsp-------plastic
- kindeditor上传文件在SpringMVC中servletFileUpload.parseRequest(request)解析为空获取不到数据问题 .
- 【C语言提高37】结构体元素做函数参数与结构指针做函数参数
- 全志A33下面,讲解配置LVDS时序,支持12.1寸屏
- git merge 时可能会遇到的问题
- 拉格朗日对偶(Lagrange duality)
- Ubuntu15.10 安装JDK (jdk1.8.0_65)
- visual studio 调试时提示 已加载“C:\Windows\SysWOW64\ntdll.dll”。无法查找或打开 PDB 文件。
- Laravel5.2快速入门
- System类