KindEditor 实现图文上传方法介绍

1.官网下载ckeditor,解压后去掉不需要的部分,仅需保留plugin,lang,theme文件夹,这三个文件夹中用不到的东西可以删除,比如lang文件下存放所有语言文件js,仅仅保留en.js和zh_CN.js即可,保留jsp文件夹下的json_upload.jsp文件和kindeditor.js文件即可
2.配置使用ckeditor 

实例

 代码如下 复制代码

KindEditor 要求的JSON格式如下:
{"error":0,"message":".....","url":"/img/1111.gif"}
其中当error值为0时表示上传成功,需要指定url值为图片保存后的URL地址,如果error值不为0,则设置message值为错误提示信息
首先指定上传处理的URI
KE.show({
           id : 'ta_blog_content',
           resizeMode : 1,
           shadowMode : false,
           allowPreviewEmoticons : false,
            urlType : 'absolute',
            allowUpload : true, //允许上传图片
            imageUploadJson : '/action/blog/upload_img' //服务端上传图片处理URI
});

图片上传处理方法

 代码如下 复制代码

/**
 * 图片上传
 * @param ctx
 * @throws IOException
 */
@Annotation.PostMethod
@Annotation.JSONOutputEnabled
public void upload_img(RequestContext ctx) throws IOException {
 File imgFile = ctx.image("imgFile");
 if(imgFile.length() > MAX_IMG_SIZE ){
  ctx.output_json(
   new String[]{"error","message"},
   new Object[]{1,ResourceUtils.getString("error", "file_too_large", MAX_IMG_SIZE/1024)}
  );
  return ;
 }
 String uri = new SimpleDateFormat("yyyyMMdd").format(new Date())
  + "/IMG_"
  + RandomStringUtils.randomAlphanumeric(4)
  + '_'
  + String.valueOf(ctx.user().getId())
  + '.'
  + FilenameUtils.getExtension(imgFile.getName()).toLowerCase();

 Multimedia.saveImage(imgFile, img_path + uri, 0, 0);
 ctx.output_json(new String[]{"error","url"}, new Object[]{0, LinkTool.upload("space/"+uri)});
}

 

实例

 代码如下 复制代码

//加载kindeditor
       KindEditor.ready(function(K) {
    var editor = K.create('textarea[name="messageContent"],textarea[name="updateMessageContent"]', {
     uploadJson : '${ctx}/static/common/kindeditor-4.1/jsp/upload_json.jsp', //指定上传图片的服务器端程序
     allowUpload : true,
     urlType : 'absolute',
                 resizeType : 0,  //文本框不可拖动
     items : [  //配置工具栏
        'fontname', 'fontsize', '|', 'forecolor', 'hilitecolor', 'bold', 'italic', 'underline',
        'removeformat', '|', 'justifyleft', 'justifycenter', 'justifyright', 'insertorderedlist',
        'insertunorderedlist', '|', 'emoticons', 'image', 'link'],
       
        afterCreate : function(){ //kindeditor创建后,将编辑器的内容设置到原来的textarea控件里
               this.sync();  
        },
        afterChange: function(){ //编辑器内容发生变化后,将编辑器的内容设置到原来的textarea控件里
               this.sync();  
        },
        afterBlur : function(){ //编辑器聚焦后,将编辑器的内容设置到原来的textarea控件里
            this.sync();
        } 
    });

首先 name=messageContent,是textarea的name属性

 uploadJson部分是请求图片上传处理的jsp,即json_upload.jsp。注意路径写对就可以完成。关于如何配置详细参数请参考点击打开链接

修改json_upload.jsp文件保存路径即可修改一下两句即可。

//文件保存目录路径

 代码如下 复制代码
String savePath = pageContext.getServletContext().getRealPath("/upload");

//文件保存目录URL,此处为绝对路径

 代码如下 复制代码
String saveUrl  = request.getContextPath()+"/upload";
时间: 2024-07-28 14:01:54

KindEditor 实现图文上传方法介绍的相关文章

Retrofit2.0 实现图文(参数+图片)上传方法总结

最近项目里用到了类似图文上传的功能,以前都是封装OkHttp的文件上传功能,这次想换个姿势,想用Retrofit2.0实现这样的功能,本来以为挺简单的,没想到进入了深坑,连续调整了好几种姿势都报了同一个错,接着网上类似的文章找了一大推,讲得都是模棱两可,或者对多参数格式不够友好,最后还是去看了相关的源码,自己把这个问题提出来解决了,在这里记录一下. 一.定义网络请求接口 public interface GoodsReturnApiService { @Multipart @POST(Compa

Android Retrofit实现多图片/文件、图文上传功能

什么是 Retrofit ? Retrofit是Square开发的一个Android和Java的REST客户端库.这个库非常简单并且具有很多特性,相比其他的网络库,更容易让初学者快速掌握.它可以处理GET.POST.PUT.DELETE-等请求,还可以使用picasso加载图片. 一.再次膜拜下Retrofit Retrofit无论从性能还是使用方便性上都很屌!!!,本文不去介绍其运作原理(虽然很想搞明白),后面会出专题文章解析Retrofit的内部原理:本文只是从使用上解析Retrofit实现

ASP中实现文件上传方法的研究

上传 摘要:在基于浏览器/服务器的应用环境中,在浏览器中上传各种类型的文件一直是困扰用户文件管理应用的难题之一.在HTTP中上传文件有三种机制:RFC1867,PUT和WebDAV.常用的实现方法是利用在RFC1867中引入的一个新类型:File以及ADO Stream对象.本文对上述上传方法及实现原理作了论述,并给出了具体解决实例. 关键词:ASP 组件 FILE对象 当前,基于浏览器/服务器模式的应用比较流行.当用户需要将文件传输到服务器上时,常用方法之一是运行FTP服务器并将每个用户的FT

封装ThinkPHP的一个文件上传方法实例_php实例

本文实例讲述了封装ThinkPHP的一个文件上传方法,分享给大家供大家参考.具体如下: 这阵子,对WBlog的上传功能作了优化.改进后的上传功能可以实现缩略图上传,图片上传,生成水印,文件上传,并且可以在后台对上传的附件进行大小(文件大小),类型(文件类型),水印(针对图片)的进行设置.此外还可以对上传的文件进行分类保存到相应的文件夹里,方便管理. 下面是对改进后的上传功能作简约的说明. 缩略图上传 先前的缩略图上传功能使用了KindEditor的上传组件,除非上传之前对图片进行缩略处理,不然上

asp.net超大文件上传方法

asp教程.net超大文件上传方法 asp.net教程大文件上传是一个不完善和有缺陷的领域,相信在不久会得到提高和发展,如果你已经解决了,说明你在一个好公司,否则你可以考虑使用第三方产品来解决了.文件上传的问题,我们都能够找到很多种不同的方法来解决,挑战在于找出不同做法的利弊然后找到一个适用于自己项目的方案,这不仅仅是在文件上传这一个方面!   <asp:image id="imglogo" runat="server" /><br/> &l

文件上传方法

文件上传是很早以前的事了,最早那会常用的就是IPC连接,然后一个一个的COPY,自从动网upfile漏洞出来以后,各种脚本系统如PHP.JSP下的文件漏洞纷纷暴出,原理都是大同小异,没有过滤文件上传路径,导致可以抓包然后把空格20改成00,变成空字符NULL,系统是从右往左识别的,所以到空字符那就截断了,更简单的就是过滤文件上传类型不完整,改后缀就可以解决了,这些上传文件的漏洞,用万能上传工具就可以轻松搞定,不过漏洞文件名不同罢了. 还有一些另类的文件上传方法,是在系统做了比较好的防范下完成的,

asp.net实现文件无刷新上传方法汇总

  本文给大家介绍的是asp.net实现文件无刷新上传的2种方法,分别是使用swfupload插件和uploadify插件,讲述的十分细致全面,附上示例,有需要的小伙伴可以参考下. 遇到上传文件的问题,结合之前用到过的swfUpload,又找了一个无刷新上传文件的jquery插件uploadify,写篇博客记录一下分别介绍这两个的实现方法 swfUpload 导入swfUpload的开发包 添加js引用,引用swfUpload.js与handler.js文件,如果对swfUpload不了解.有疑

ASP.NET 常用 文件上传方法第1/2页_实用技巧

本文主要内容包括: 1.如何解决文件上传大小的限制 2.以文件形式保存到服务器 3.转换成二进制字节流保存到数据库以及下载方法 4.上传Internet上的资源 第一部分: 首先我们来说一下如何解决ASP.NET中的文件上传大小限制的问题,我们知道在默认情况下ASP.NET的文件上传大小限制为2M,一般情况下,我们可以采用更改WEB.Config文件来自定义最大文件大小,如下: 复制代码 代码如下: <httpRuntime executionTimeout="300" maxR

Python selenium文件上传方法汇总_python

文件上传是所有UI自动化测试都要面对的一个头疼问题,今天博主在这里给大家分享下自己处理文件上传的经验,希望能够帮助到广大被文件上传坑住的seleniumer. 首先,我们要区分出上传按钮的种类,大体上可以分为两种,一种是input框,另外一种就比较复杂,通过js.flash等实现,标签非input 我们分别对这两种进行分析: 1.input标签 众所周知,input标签是可以直接send_keys的,这里也不例外,来看代码示例: 示例网址:http://www.sahitest.com/demo