您的位置:首页 > 编程语言 > Java开发

在含有Struts2框架的应用中添加KindEditor上传图片功能

2012-09-15 15:51 465 查看
KindEditor是一个轻便的图文编辑器,有一批人在维护和更新,还有很多热心人在源源不断的提出问题和建议,值得一试。

这个东西使用起来非常的方便,KindEditor在源码的/jsp/目录下已经有写好的upload功能,稍作修改即可适应Struts2使用。

upload code:

MultiPartRequestWrapper wrapper = (MultiPartRequestWrapper) this.getRequest();
String fileName = wrapper.getFileNames("imgFile")[0];
File file = wrapper.getFiles("imgFile")[0];

saveUrl += newFileName;

FileOutputStream fos = new FileOutputStream(savePath + newFileName);
byte[] buffer = new byte[1024];
InputStream in = new FileInputStream(file);

try {
int num = 0;
while ((num = in.read(buffer)) > 0) {
fos.write(buffer, 0, num);
}
} catch (Exception e) {
e.printStackTrace(System.err);
} finally {
try{
if(in != null)
in.close();
if(fos != null)
fos.close();
}catch(IOException e){}
}

JSONObject obj = new JSONObject();
obj.put("error", 0);
obj.put("url", saveUrl);
this.print(obj.toJSONString());


被替换的代码:

FileItemFactory factory = new DiskFileItemFactory();
ServletFileUpload upload = new ServletFileUpload(factory);
upload.setHeaderEncoding("UTF-8");
List items = upload.parseRequest(request);
Iterator itr = items.iterator();
while (itr.hasNext()) {

......

}


还有就是KindEditor的FileManager功能,如果你要转移原jsp中的代码至Struts action时,需要注意KindEditor会传递一些Action中并不存在的一些键值,Struts会有对应的warn和exception;

由于FileManager只是对upload成功的文件做一些查询和预览的功能,建议是用servlet替代Struts Action 。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: