由于使用zk upload组件上传图片,然后将图片的上下文路径插入到CKEditor中过于复杂,
在http://ckeditor.com/demo上,你可以看到CKEditor可以上传图片和闪存等等,
但是在zk,CKEditor没有这个功能,
这是不是意味着zk中的CKEditor不能上传文件?
发布于 2011-09-26 01:56:33
对于zk,这恐怕是不可能的。
我写了一个变通方法来做这件事。你必须在你的图形用户界面中添加一个按钮,并将这个EventListener添加到按钮中:
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是我的类,它处理文件传输,用于将数据写入docroot。在我的例子中,glassfish 3.1的docroot可以通过以下代码找到。我为ist编写了方法getDocFolder(),因为它还为每个用户添加子文件夹(如果它们不存在)。
File file = new File("../docroot/");这是reader的upload方法的代码:
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) {}
}我希望这能帮到你
https://stackoverflow.com/questions/6927377
复制相似问题