ckeditor之java文件上传与文件浏览2

ckeditor文件浏览功能只需要自己做个jsp或servlet接收请求参数并把图片以列表的形式显示出来即可,
当用户选定图片的时候提交一个回调函数即可,回调函数和之前的上传一样,参数说明见上一篇。


CKEDITOR.replace( 'editor_kama',
{
customConfig : 'custom/myCkConfig.js',
skin : 'kama',
//filebrowserBrowseUrl : '/browser/browse.php',
filebrowserImageBrowseUrl : 'servlet/BrowerUpload',
//filebrowserUploadUrl : '/uploader/upload.php',
filebrowserImageUploadUrl : 'servlet/FileUpload'

});

这里可以看到 我们将filebrowserImageBrowseUrl 指向了一个我们自己编写的servlet



import java.io.File;
import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class BrowerUpload extends HttpServlet {

public BrowerUpload() {
super();
}

public void destroy() {
super.destroy(); // Just puts "destroy" string in log
}

public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String callback = request.getParameter("CKEditorFuncNum");
System.out.println(callback);
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println("<script type='text/javascript'>");
out.println("function tt(obj){");
out.println("window.opener.CKEDITOR.tools.callFunction("+callback+",obj)");
out.println("window.close();");
out.println("}");
out.println("</script>");
String uploadDir = getServletContext().getRealPath("/upload");
File file = new File(uploadDir);
if(!file.exists()){
file.mkdir();
}
File[] files = file.listFiles();
for(File f:files){
if(f.isDirectory()){
out.print(f.getName());
File[] filesc = f.listFiles();
for(File fc: filesc){
out.print("<div onclick =tt('"+"upload/"+f.getName()+"/"+fc.getName()+"','')>");
out.print("upload/"+f.getName()+"/"+fc.getName());
out.print("</div>");
}
}
}
out.flush();
out.close();

}

public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {

doGet(request, response);
}


public void init() throws ServletException {
}

}

这个servlet就是用来遍历目录中的文件并构建回调函数
以下就是模拟构建后的结果

<script type='text/javascript'>
function tt(obj){
window.opener.CKEDITOR.tools.callFunction(1,obj)
window.close();
}
</script>
20100528<div onclick =tt('upload/20100528/20100528161405687.gif','')>upload/20100528/20100528161405687.gif</div>

这里当点击链接的时候就处罚js函数,完成在ckeditor编辑框中插入图片的操作。

这里只是模拟,实际上在使用的时候可以考虑用js相册组件去修饰一下。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值