记一次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编码字符串解决

ckeditor5上传的图片如何用PHP接收?

ckeditor添加自定义按钮整合swfupload实现批量上传图片

CKEditor 5 注册多个上传适配器

ckeditor 上传图片 php版

如何将CKeditor编辑器的上传和thinkphp结合