记一次ckeditor上传图片到服务器问题
Posted Stay Hungry, Stay Foolish
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了记一次ckeditor上传图片到服务器问题相关的知识,希望对你有一定的参考价值。
package com.util;
import java.io.IOException; import java.io.PrintWriter; import java.util.List;
import java.io.File; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.commons.fileupload.FileItem; import org.apache.commons.fileupload.FileItemFactory; import org.apache.commons.fileupload.disk.DiskFileItemFactory; import org.apache.commons.fileupload.servlet.ServletFileUpload; import org.apache.struts2.ServletActionContext; import util.DateUtil; import util.PropertiesUtil; public class ImageUploadServlet extends HttpServlet{ private static final long serialVersionUID = 1L; @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { this.doPost(request, response); } @Override protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html;charset=UTF-8"); request.setCharacterEncoding("UTF-8"); response.setCharacterEncoding("UTF-8"); PrintWriter out=response.getWriter(); FileItemFactory factory=new DiskFileItemFactory(); ServletFileUpload upload=new ServletFileUpload(factory); try { List<FileItem> list=upload.parseRequest(request); for(FileItem fileItem:list){ String imageName=DateUtil.getCurrentDateStr(); File file=new File(ServletActionContext.getServletContext().getRealPath("/userImage")+imageName+"."+fileItem.getName().split("\\.")[1]); String newPath=ServletActionContext.getServletContext().getRealPath("/userImage")+"/"+imageName+"."+fileItem.getName().split("\\.")[1]; fileItem.write(file); String callback = request.getParameter("CKEditorFuncNum"); out.println("<script type=\"text/javascript\">"); out.println("window.parent.CKEDITOR.tools.callFunction("+callback + ",‘"+ newPath + "‘,‘‘" + ")"); out.println("</script>"); out.flush(); } } catch (Exception e) { e.printStackTrace(); } } }
package com.util; import java.text.SimpleDateFormat; import java.util.Date; public class DateUtil { public static String formatDate(Date date,String format){ String result=""; SimpleDateFormat sdf=new SimpleDateFormat(format); if(date!=null){ result=sdf.format(date); } return result; } public static Date formatString(String str,String format) throws Exception{ if(StringUtil.isEmpty(str)){ return null; } SimpleDateFormat sdf=new SimpleDateFormat(format); return sdf.parse(str); } public static String getCurrentDateStr()throws Exception{ Date date=new Date(); SimpleDateFormat sdf=new SimpleDateFormat("yyyyMMddhhmmss"); return sdf.format(date); } }
*************************************
package com.util; import java.io.IOException; import java.io.InputStream; import java.util.Properties; public class PropertiesUtil { public static String getValue(String key){ Properties prop=new Properties(); InputStream in=new PropertiesUtil().getClass().getResourceAsStream("/text.properties"); try { prop.load(in); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } return prop.getProperty(key); }
*************
text.properties
userImage=userImage/ pageSize=5 backPageSize=3 imagePath=webapps//ROOT/userImage/ imageFile=userImage
以上是关于记一次ckeditor上传图片到服务器问题的主要内容,如果未能解决你的问题,请参考以下文章
CKEditor图片上传问题(默认安装情况下编辑器无法处理图片),通过Base64编码字符串解决