2011-08-03 7 views
1

使用ZKのアップロードコンポーネント、画像をアップロードするので、その後、CKEditorバージョンへの画像のコンテキストパスを挿入するには、zk(zk WYSIWYG Editor)でCKEditorを使って画像をアップロードできますか?

http://ckeditor.com/demoで、あなたは画像やフラッシュなどをアップロードできるようCKEditorバージョンを見ることができ、

複雑すぎます

しかしzkでは、CKEditorにはこの機能がありません。

はzkのCKEditorがファイルをアップロードできないことを意味しますか?

答えて

1

これはzkでは不可能です。

私はこれを行うための回避策を作成しました。あなたのGUIにボタンを追加し、ボタンにこのイベントリスナーを追加する必要があります。

private class onUpload implements EventListener 
{ 
    @Override 
    public void onEvent(Event event) throws Exception 
    { 
     Media media = ((UploadEvent) event).getMedia(); 

     if (media.getContentType().contains("image")) 
     { 
      reader.upload(media.getStreamData(), media.getName()); 

      String description = edDescription.getValue(); 
      description += "<img alt=\"\" src=\"/" + media.getName() + "\" />"; 
      edDescription.setValue(description); 
     } 
     else 
     { 
      new Messagebox().show(_T("You can only upload images!"), _T("Not an image!"), Messagebox.OK, Messagebox.ERROR); 
     } 
    } 
} 

Readerは、ファイル転送を処理し、ドキュメントルートにデータを書き込むために使用された私のクラスです。私の場合、glassfish 3.1のdocrootは次のコードで見つけることができます。既に存在していない場合は、各ユーザーのサブフォルダも追加するため、istのgetDocFolder()メソッドを作成しました。

File file = new File("../docroot/"); 

これは、読者のアップロード方法のためのコードです:私は、これは

を役に立てば幸い

InputStream inputStream = null; 

    try 
    { 
     inputStream = new ByteArrayInputStream(imageStream); 
     String filename = getDocFolder()+"/"+imageName; 

     File file = new File(filename); 
     OutputStream out=new FileOutputStream(file); 
     byte buf[]=new byte[1024]; 
     int len; 

     while((len = inputStream.read(buf)) > 0) 
      out.write(buf,0,len); 

     out.close(); 
     inputStream.close(); 
    } 
    catch (Exception ex) 
    { 
     Logger.getLogger(ImageReader.class.getName()).log(Level.SEVERE, "Error writing image", ex); 
    } 
    finally 
    { 
     try 
     { 
      inputStream.close(); 
     } 
     catch (IOException ex) {} 
    } 

関連する問題