使用ck上传图片

时间:2012-06-14 06:19:00

标签: java jsp ckeditor image-uploading

我需要使用ck编辑器中的“发送到服务器”按钮将图像上传到服务器,并在ckeditor编辑区域中显示图像。 ckeditor中的所有这些东西,如下所示,

url:b.config.filebrowserImageBrowseLinkUrl跟随image.js中的这段代码我设置hidden = false;和

CKEDITOR.editorConfig = function( config )
{
    config.filebrowserUploadUrl = '../ckeditorImage.jsp';
}

ckeditorImage.jsp is like this


try{

    String boundary="";
    String sz="";
    String fname="",sem="",sub="",mod="",empid="";
    Enumeration enum1 = request.getHeaderNames();
    while(enum1.hasMoreElements())
    {
            String header = (String)enum1.nextElement();
            String hvalue = request.getHeader(header);
            if("content-length".equalsIgnoreCase(header) )
        sz=""+hvalue;

    } 
        ServletInputStream sv=request.getInputStream();       
    int ch=0;
    String val="";  
    while((ch=sv.read())!=-1)
    {
        val+=(char)ch;      
                if(val.indexOf("Content-Type: ")>=0)
        {

            String tp="Content-Type: ";

            fname=val.substring(val.indexOf("filename=")+"filename=".length(),val.indexOf(tp));
                        fname=fname.replace('"',' ');
                        System.out.println(" =======fname============    :"+fname);           
            fname="home1.jpg";                  
            long size = fname.length();         

                        while((ch=sv.read())!='\n');
            byte[] b=new byte[Integer.parseInt(sz)];
            int cntr=0;
            while(cntr<b.length)
            {
                b[cntr]=(byte)sv.read();
                cntr++;
            }
                        String str=new String(b);
            int pos=str.indexOf(boundary)-2;
            pos=b.length;
            System.out.println(" =======fname============    :"+fname);  
                         File f=new File(config.getServletContext().getRealPath("/")+"/images/"+fname);
                         System.out.println(" creation of directory"+config.getServletContext().getRealPath("/")+"/images/"+fname);
                         System.out.println(" creation");
                       /*  if(f.isDirectory())
                         {
                             String fl[]=f.list();

                             for(int i=0;i<fl.length;i++)
                                 {
                                  File fd=new File(config.getServletContext().getRealPath("/")+"/users/"+sd+"/photos/"+fl[i]);
                                  fd.delete();
                             }
                         }*/
            if(!f.exists())
                f.mkdirs();
                         System.out.println(" creation of directory");
            java.io.FileOutputStream fout=new java.io.FileOutputStream(config.getServletContext().getRealPath("/")+"/images/"+fname);

            fout.write(b,2,pos-4);
            System.out.println(" creation of directory"+fout);
            fout.close();
        }
    }
    }
    catch(Exception e)
    {
        out.println(e);
    }

1 个答案:

答案 0 :(得分:0)

此项目还为您提供了CKEditor的文件浏览器。

http://sourceforge.net/projects/jckconnector/

如果您只需要上传部分,请查看servlet代码