ueditor(1.4.3.2)提取单图上传功能

参照网络上流行的提取单图上传功能的方法并加以修改,主要通过创建提取的通用上传图片的js文件(custom.js)和简单修改UEditor的ueditor.all.js文件。

1)在自定义js custom.js中添加方法

var _editor = UE.getEditor(‘editor_img‘, {toolbars: [[‘simpleupload‘]]});
_editor.ready(function () {
    //设置编辑器不可用
    //_editor.setDisabled();  这个地方要注意 一定要屏蔽
    //隐藏编辑器,因为不会用到这个编辑器实例,所以要隐藏
    //_editor.hide();
    //侦听图片上传
    _editor.addListener(‘contentChange‘, function (editor) {
        //获取编辑器中的内容(html 代码)
        var img = UE.getEditor(‘editor_img‘).getPlainTxt();
        if (img.replace(/[\r\n]/g, "") != "") {
            //判断是否是单图片上传,如果是单传不做任何处理,等待回调函数再次调用。
            if (img.indexOf("loadingclass") == -1) {
                //清空编辑器中的内容,以便下一次添加图片。
                UE.getEditor(‘editor_img‘).execCommand(‘cleardoc‘);
                //调用callbackImg获取懂图片名称
                if (typeof callbackImg === "function") {
                    eval("callbackImg(‘" + $(img).attr("src") + "‘)");
                }
            }
        }
    });
});
//单传图片开始上传,显示等待。
function preUploadSingleImg() {
    if ($("#loading").length > 0) {
        $("#loading").html("<img style=‘margin:38px auto;‘ src=‘lib/ueditor/themes/default/images/loading.gif‘>");
    }
}
//单传图片回调,然后清理内容,在清理内容会自动调用contentChange事件,然后再获取上传文件的文件名。
function uploadSingleImgCallback() {
    UE.getEditor(‘editor_img‘).execCommand(‘cleardoc‘);
}
//上传完成后返回图片地址
function callbackImg(imgSrc) {
    $("#loading").html(‘<img style="height: 100px;width: 100px;" src="‘ + imgSrc + ‘"/>‘);
}
//上传点击事件
function uploadImg() {
    var file = $($("iframe").get(0).contentWindow.document).find("input").get(0);
    file.onchange = function () {};
    //判断浏览器是否是IE
    if (document.all) {
        file.click();
    } else {
        var evt = document.createEvent("MouseEvents");
        evt.initEvent("click", true, true);
        file.dispatchEvent(evt);
    }
}

2)修改ueditor.all.js源码,找到上传开始和上传完成的事件,在24466行和24488行分别调用js方法preUploadSingleImg()和uploadSingleImgCallback()。

if (typeof preUploadSingleImg === "function") {
     preUploadSingleImg();
}
function callback(){
   try{
       var link, json, loader,
       body = (iframe.contentDocument || iframe.contentWindow.document).body,
       result = body.innerText || body.textContent || ‘‘;
       json = (new Function("return " + result))();
       link = me.options.imageUrlPrefix + json.url;
       if(json.state == ‘SUCCESS‘ && json.url) {
           loader = me.document.getElementById(loadingId);
           loader.setAttribute(‘src‘, link);
           loader.setAttribute(‘_src‘, link);
           loader.setAttribute(‘title‘, json.title || ‘‘);
           loader.setAttribute(‘alt‘, json.original || ‘‘);
           loader.removeAttribute(‘id‘);
           domUtils.removeClasses(loader, ‘loadingclass‘);
       } else {
           showErrorLoader && showErrorLoader(json.state);
       }
       //单独提取上传回调函数。
        if (typeof uploadSingleImgCallback === ‘function‘) {
           uploadSingleImgCallback();
       }
   }catch(er){
       showErrorLoader && showErrorLoader(me.getLang(‘simpleupload.loadError‘));
   }
   form.reset();
   domUtils.un(iframe, ‘load‘, callback);
}

3)前台页面代码。

上传头像示例:<br>
<div id="editor_img" style="display: none;"></div>
<div id="loading" style="height: 100px;width: 100px;cursor:pointer;float:left;border:1px solid #000;text-align: center;" onclick="uploadImg()"></div>
<script type="text/javascript" src="./lib/ueditor/custom.js"></script>
时间: 2024-11-05 12:22:21

ueditor(1.4.3.2)提取单图上传功能的相关文章

从web编辑器 UEditor 中单独提取图片上传,包含多图片单图片上传以及在线涂鸦功能

UEditor是由百度web前端研发部开发所见即所得富文本web编辑器,具有轻量,可定制,注重用户体验等特点,开源基于MIT协议,允许自由使用和修改代码.(抄的...) UEditor是非常好用的富文本web编辑器,而且全中文API和注释,方便学习和使用.特别是图片上传查看及涂鸦功能极为喜欢,但是有很多情况我们并不需要Web编辑器,而只需要图片上传.那么问题来了,提取图片上传哪家强..... 网上有很多图片上传的控件.插件.但都不是那么的完美,有的只有一张图片上传不包含批量上传,有的没有图片查看

java开发:分享一下百度ueditor和七牛的图片集成上传

做网站时,如果上传的图片量很大,现在不少人会选用七牛图片服务器.那么,今天就来说说如何把网站的图片上传与七牛的sdk集成的问题. jsp页面,实现图片上传的方式也很多,今天就来说下百度的编辑器:ueditor 首先要到官网去下载它,后面我也会附上源代码,需要的朋友可以下载. 我们新建一个项目:qndemo,然后将ueditor放到webroot目录下,截图如下: 另外,我们还要引入jar包: 前台页面,我们需要引用相关js,默认配置下,会加载出编辑效果,如下图: 这时候,我们上传的图片会保存在本

UEditor之实现配置简单的图片上传示例

开心一笑 下班后,阿华到楼下小超市买毛巾,刚买完出来,就遇到同一办公楼里另一家公司的阿菲,之前与她远远的有过几次眼神交流,但从没说过话,"买毛巾啊",看着阿华手里的毛巾,阿菲先开口了. 阿华回到:"是啊,这里的老板眼神太好了,我不敢偷,就只有买了." 阿菲一下就哈哈笑了,配合到:"哇,原来你是小偷." 阿华:"嘘,小声点,其实主要原因是--"阿华指着自己的脑袋接着说到:"你看,我是个有头有脸的人,所以还是要用用毛巾的

UEditor之实现配置简单的图片上传示例 (转)

http://blog.csdn.net/huangwenyi1010/article/details/51637427#comments 1.首先你可以到官网Ueditor,查看很详细的文档,包括如何安装到Eclipse,相关jar包和如何使用Ueditor,本文主要介绍如何实现单图片上传和利用自己的接口: 运行tomcat上,在google浏览器运行(Test是我的项目名称): http://localhost:8081/Test/jsp/config.json 出现一串长长的json的字符

在SAE上使用Ueditor的图片上传功能

SAE上是没有目录读写权限的,所以要在SAE使用Ueditor的图片上传功能需要借助SAE的Storage服务. 一.开通Storage服务 在SAE控制台开通Storage服务,并新增一个domain. 二.修改Ueditor代码 Ueditor处理上传文件的方法在DjangoUeditor/jviews.py中,上传图片的请求是由下面函数处理的 #上传附件 @csrf_exempt def UploadFile(request,uploadtype,uploadpath):     '''

ueditor样式过滤去除和远程图片上传自定义

ueditor自定义编辑的时候,比如需要做延迟加载,这个时候需要自定义图片等,但是,ueditor会去除img上面的属性,比如data-original和把远程图片自动上传. 这个时候,首先,需要给图片自动上传加上属性,不如对于jquery.lazyload延迟加载的图片,必定带有data-original属性,只要检测出此属性,就不远程上传.其它属性自定义提那家,代码如下: 'wordimage':{ execCommand:function () { var images = domUtil

Laravel5多图上传和Laravel5单图上传的功能实现

Laravel5文件上传默认只能上传一张图片,但是有的时候我们需要一次性上传多图就不行了,我在网上看了很多关于laravel5图片上传的文章,很多都只是介绍laravel5单图上传,多图片上传介绍少之有少,今天分享一篇关于laravrl5多图上传文章,代码逻辑设计可能不完美,但功能实现了.希望对大家有所帮助! 前端代码: 注意:<input type="file" class="default" name="img[]" /> <

ASP.net core 使用UEditor.Core 实现 ueditor 上传功能

效果图: UEditor下载地址 https://ueditor.baidu.com/website/download.html ASP.net core 使用UEditor.Core 实现 ueditor 上传功能 https://www.cnblogs.com/WNpursue/archive/2019/02/20/ASPNetCore-use-UEditor-Core-share.html 原文地址:https://www.cnblogs.com/yechangzhong-82621779

struts2中实现文件上传功能

在web项目中,文件上传.头像上传这样的功能经常是要用到的,下面就以在struts2中实现文件上传功能为例子,简单地理一下文件上传功能的编码思路. 项目目录结构 项目源代码 web.xml <?xml version="1.0" encoding="UTF-8"?> <web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:x