精华内容
下载资源
问答
  • Ueditor删除无用图片详解

    千次阅读 2019-07-06 22:45:18
    在上一篇文章 yii2.0使用ueditior完成上传单张,多张图片,上传视频等操作 之后,博主进行了大量的测试,偶然发现图片文件夹越来越大。。       是的,比如上传了a.png和b.jpg,等到...

    一、前言

          在上一篇文章 yii2.0使用ueditior完成上传单张,多张图片,上传视频等操作 之后,博主进行了大量的测试,偶然发现图片文件夹越来越大。。

          是的,比如上传了a.pngb.jpg,等到要提交的时候,又把a.png在编辑器中给删除了(backspace),此时我们获取的文档中只有b.jpg,但是存储图片文件夹中,a.png是依然存在的,此时它就是无用的图片。当我们添加的量多的时候,这些无用图片就十分烦人了,占用空间,而且看起来也心烦。

    二、删除无用图片的逻辑

          首先,这部分无用图片我们是没有存储在数据库的,理论上来说呢,其实应该弄个临时的文件存储上传的图片,然后再弄个文件夹存储正式的图片。只是文件目录这种东西,特别是在开发的差不多的时候,能不动就不动最好。所以博主这边采用另一种方案,使用临时json数据存储图片名,根据对比来进行删除。

    1、add逻辑

    (1)图片上传的时候,图片名称存入到img.json
    (2)提交表单的时候,获取contont,匹配content中图片的src部分,获取数组$add_img;
    	
    (3)遍历json文件,获取所有的图片名称,然后和$add_img做比较,获取到$add_img中没有的图片名称$del_img_arr
    (4)遍历删除$del_img_arr,同时删除img_json文件。
    

    2、edit逻辑

    (1)编辑的提交的时候,同样获取一下content中的图片为add_img。然后获取json文件中的$json_arr,再获取数据库存储的的content中的$arr_img。
    	(2)array_merge($json_arr,$arr_img)为$arr_img,然后执行的操作就和新增时候一样了,对比两个数组中的图片名,找到$add_img中没有的图片名,删除即可
    

    OK,大致逻辑明确之后,接下来就是正式的代码部分

    三、删除无用过程

    1、通过正则匹配图片的src

      /**
         * @param $content
         * @params:根据html内容获取图片的src ,$type是为了区分add和edit,因为存在转义,所以截取的长度不同
         * @author:ljf
         * @date:2019/7/5
         * @time:16:03
         */
        public function getImgSrc($content,$type)
        {
            $add_img = [];
            $pattern='/<img.*?src=[\"|\']?(.*?)[\"|\']?\s.*?>/i';
            preg_match_all($pattern,$content,$res);
            if(count($res[1]) > 0){//代表匹配到图片了,截取字符串,获取图片名称即可
                foreach($res[1] as $v){
                    if($type == 1) {
                        $src = substr($v, -21);
                        $img_name = substr($src, 0, strlen($src) - 1);
                    }else{
                        $src = substr($v, -20);
                        $img_name = $src;
                    }
                    //$add_img[$img_name] = $img_name;
                    $add_img[]=[
                        'name'=>$img_name,
                    ];
                }
            }
            return $add_img;
        }
    

          这里的$type变量是博主业务需求加上去的,大家不加就行,主要是正则匹配,返回图片的src数组。

    2、去Uploader.php中,找到上传图片的方法upFile(),修改上传成功之后的逻辑,即存入img.json文件。

      if (!(move_uploaded_file($file["tmp_name"], $path) && file_exists($path))) { //移动失败
                $this->stateInfo = $this->getStateInfo("ERROR_FILE_MOVE");
            } else { //移动成功,把图片名称写入json
                $path = \Yii::getAlias('@out_news');
                $path_img = $path."/img/img.json";
                $all_img = [];
                $data[] = [
                    'name'=> substr($this->imgName,5),
                ];
                if(file_exists($path_img)){
                    $json_string = file_get_contents($path_img);// 从文件中读取数据到PHP变量
                    $arr_img = json_decode($json_string, true);// 把JSON字符串转成PHP数组
                    if(count($arr_img) > 0){
                        $all_img = array_merge($arr_img,$data);
                    }else{
                        $all_img = $data;
                    }
                }else{
                    $all_img = $data;
                }
                $img_all = json_encode($all_img,JSON_UNESCAPED_UNICODE);
                file_put_contents($path_img, $img_all);
                $this->stateInfo = $this->stateMap[0];
            }
    

    3、edit的时候相关操作

          adddelete的操作比较简单,这里就不列出来了,具体是edit的时候,要对比传入的conten中的图片名称,以及数据库中和json文件中的图片名称,综合对比,删除文件夹中无用的图片。

      $path_img = $path."/img/img.json";  //json文件的路径
                        if(file_exists($path_img)) {
                            $json_string = file_get_contents($path_img);// 从文件中读取数据到PHP变量
                            $img_json_arr = json_decode($json_string, true);// 把JSON字符串转成PHP数组
                        }else{
                            $img_json_arr = [];
                        }
                        $old_img_src = $this->getImgSrc($arr[0]['string'],2);  // 获取数据库中的图片src数组
                        $new_img_src = $this->getImgSrc($content,1);  // 获取新传入的content的图片src数组
                        $old_img_src = array_merge($old_img_src,$img_json_arr);  //合并数据库和json文件的图片数组
                        	$this->delLocalImage(new_img_src ,old_img_src );  //删除操作
    	
    
    

    4、删除函数delLocalImage()

     /**
         * @param $arr_img
         * @param $add_img
         * @params:通过旧数组和新数组的对比,删除无用的图片,$add_img是每次提交的img,  $arr_img是json文件和数据库内存的img
         * @author:ljf
         * @date:2019/7/5
         * @time:16:16
         */
        public function delLocalImage($arr_img,$add_img = [])
        {
            $path = \Yii::getAlias('@out_news');
            $path_img = $path."/img/img.json";
            $new_img = [];
            if(count($arr_img)>0) {
                if(count($add_img) > 0){ //当内容中含有图片的时候,才做判断,不含图片的话,直接删除json文件中的img
                    foreach($add_img as $k2=>$v2){
                        $new_img[$v2['name']] = $v2['name'];
                    }
                    unset($v2);
                    foreach ($arr_img as $k => $v) {
                        if (isset($new_img[$v['name']])) {
                            unset($arr_img[$k]);
                        }
                    }
                }
                unset($v);
                if(count($arr_img) > 0) {
                    foreach ($arr_img as $k1 => $v1) {
                        $del_path = $path . '/img/' . $v1['name'];
      	 if(file_exists($del_path )){
                        $this->delDirAndFile($del_path, false);
    	 }
                    }
                }
    
            }
            $this->delDirAndFile($path_img, false); //删除掉json文件
        }
    

    关于删除文件夹的函数代码,参考:
    php删除文件夹(临时文件)代码

    四、总结

    1、 测试的时候一定要细心,既然是做自己的产品,尽量是不要留下什么小尾巴,其实这些无用图片不管也没事,对性能不会造成太大的影响,但是如果明知道是程序有问题还不改,那就是自己的失职了。

    2、 以上思路是建立在不改变原项目目录的情况下,如果想要方便点的话,直接新建测试文件夹存储这些临时图片也是不错的,反正就是对比,删除的事情。

    3、 记录这篇博客主要是心里有点感慨。最开始的时候,遇到bug都是直接开始撸代码,遇到问题了再去思考。现在呢,总是喜欢现在笔记本上写思路,先列出来大致思路,一直到形成一个闭环为止。然后对这些思路进行删减,看看能不能优化下,是否有更好的解决方案,最后才会敲定最终方案,按照思路去写代码,事半功倍是真的。

          看来我们都在不知不觉的发生着改变,是好事吧,逐渐变得成熟且强大。只是,莽劲儿却少了许多,可能就是传说中的姜花深处无少年吧。

    end

    展开全文
  • 今天下载了目前最新版1.2.5为版本看更新记录,主要是对表格做个修改,我下载用上,我靠,上传图片删除功能给取消了,下面与大家分享下增加图片删除功能示例
  • 第一,需要添加一个 php 文件来实现删除功能,文件添加到:ueditor\php\action_delete.php代码内容: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 <?...

    第一,需要添加一个 php 文件来实现删除功能,文件添加到: ueditor\php\action_delete.php 代码内容:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    <?php
      
    /*---------------------------
      * wang
      *zhibeiwang.blog.51cto.com
      * 2017-08-10
      * action_delete.php
      * 删除 Ueditor 目录下的文件
      *---------------------------*/
      
    try  {
         //获取路径
         $path  $_POST [ 'path' ];
         $path  str_replace ( '../' '' $path );
         $path  str_replace ( '/' '\\' $path );
         
         //安全判断(只允许删除 ueditor 目录下的文件)
         if ( stripos ( $path '\\ueditor\\' ) !== 0)
         {
             return  '非法删除' ;
         }
         
         //获取完整路径
         $path  $_SERVER [ 'DOCUMENT_ROOT' ]. $path ;
         if ( file_exists ( $path )) {
             //删除文件
             unlink( $path );
             return  'ok' ;
         else  {
             return  '删除失败,未找到' . $path ;
         }
    catch  (Exception  $e ) {
         return  '删除异常:' . $e ->getMessage();
    }

    第二,需要在 ueditor\php\controller.php 文件的 switch 中添加命令 deleteimage 的处理:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    ....
      
    switch  ( $action ) {
      
         ....
        
         /* 删除图片命令处理 */
         case  'deleteimage' :
              $result  include ( 'action_delete.php' );
              break ;
         
         /* 在 default 之前添加 */
         default :
             $result  = json_encode( array (
                 'state' =>  '请求地址出错'
             ));
             break ;
      
    }
      
    ....

    第三,在图片上添加删除按钮,需要修改 Js 文件:ueditor\dialogs\image\image.js

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    ....
      
    /* 在这两句之后添加 */
    item.appendChild(img);
    item.appendChild(icon);
      
    /* 添加删除功能 */
    item.appendChild($( "<span class='delbtn' url='"  + list[i].url +  "'></span>" ).click( function () {
         var  del = $(this);
         try {
             window.event.cancelBubble = true;  //停止冒泡
             window.event.returnValue = false;  //阻止事件的默认行为
             window.event.preventDefault();     //取消事件的默认行为  
             window.event.stopPropagation();    //阻止事件的传播
         } finally {
             if (!confirm( "确定要删除吗?" ))  return ;
             $.post(editor. getOpt ( "serverUrl" ) +  "?action=deleteimage" , {  "path" : del.attr( "url" ) },  function (result) {
                 if  (result ==  "ok" ) del.parent().remove();
                 else  alert(result);
             });
         }
    })[0]);
      
    /* 在这一句之前添加 */
    this.list.insertBefore(item, this.clearFloat);
      
    ....

    第四,为删除按钮添加一个样式,修改文件:ueditor\dialogs\image\image.css 在最底部添加如下代码:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    /* 在线管理删除按钮样式 */
    #online li .delbtn {      
         position: absolute;
         top: 0;
         right: 0;
         border: 0;   
         z-index: 3;
         color: #ffffff;
         display: inline;
         font-size: 12px;
         line-height: 10.5px;
         padding:3px 5px;
         text-align: center;
         background-color: #d9534f;
    }

    效果如下:

    wKiom1mMKESjUf6FAADePTx2B2o704.png-wh_50



    本文转自 a928154159 51CTO博客,原文链接:http://blog.51cto.com/zhibeiwang/1955197

    展开全文
  • 解决了p标签替换div标签 解决了上传图片以及上传视频带有p标签的问题
  • 使用vue-ueditor-wrap组件时导入的百度ueditor资源包,如果要恢复百度ueditor图片组件的功能,就去UEditor/dialogs/image/image.html 里面取消屏蔽23,24,25行代码,如果需要查看组件使用放法,请去我主页查看:uve 使用...
  • var imgPath = ""; /* 在线图片 */ function OnlineImage(target) { this.container = utils.isString(target) ? document.getElementById(target) : target; this.init(); } OnlineIma
     
    
     var imgPath = "";
        /* 在线图片 */
        function OnlineImage(target) {
            this.container = utils.isString(target) ? document.getElementById(target) : target;
            this.init();
        }
        OnlineImage.prototype = {
            init: function () {
                this.reset();
                this.initEvents();
            },
            /* 初始化容器 */
            initContainer: function () {
                this.container.innerHTML = '';
                this.list = document.createElement('ul');
                this.clearFloat = document.createElement('li');
    
                domUtils.addClass(this.list, 'list');
                domUtils.addClass(this.clearFloat, 'clearFloat');
    
                this.list.appendChild(this.clearFloat);
                this.container.appendChild(this.list);
            },
            /* 初始化滚动事件,滚动到地步自动拉取数据 */
            initEvents: function () {
                var _this = this;
    
                /* 滚动拉取图片 */
                domUtils.on($G('imageList'), 'scroll', function(e){
                    var panel = this;
                    if (panel.scrollHeight - (panel.offsetHeight + panel.scrollTop) < 10) {
                        _this.getImageData();
                    }
                });
                /* 点击搜索按钮 */
                domUtils.on($G('sub'), 'click', function () {
                    var key = $G('sel').value;
                    if (key && key != lang.sel) {
                        _this.reset()
                        _this.getImageData();
                    }
                });
                /* 点击缩略图按妞 */
                domUtils.on($G('clo'), 'click', function () {
                    var src ="";
                    $(".selected>img").each(function (i,v) {
                        src += "srcs=" + v.src.substr(v.src.lastIndexOf('/Picasa')) + "&";
                    })
                    src = src.substring(0, src.length - 1);
                    $.ajax({
                        url: '/Attachment/Thumbnail',
                        data: src,
                        type:'post',
                        success: function (data) {
                        alert(data.Message);
                        }
                        });
              
                    });
               
                /* 搜索框聚焦 */
                domUtils.on($G('sel'), 'focus', function () {
                     key = $G('sel').value;
                    if (key && key == lang.sel) {
                        $G('sel').value = '';
                    }
                });
                /* 搜索框回车键搜索 */
                domUtils.on($G('sel'), 'keydown', function (e) {
                    var keyCode = e.keyCode || e.which;
                    if (keyCode == 13) {
                        $G('sub').click();
                    }
                });
                /*新建文件夹*/
                domUtils.on($G('newfolder'), 'click', function () {
                    var index =layer.prompt({
                        title: '新建文件夹',
                        formType: 0//prompt风格,支持0-2
                    }, function (tex) {
                        $.ajax({
                            url: "/Picasa/controller.ashx?action=newfolder", data: { "url": tex, "getpath": $("#getpath").val() }, success: function (data) {
                                alert(data.state);
                                if (data.state = "新建成功") {
                                    layer.close(index);
                                }
                                _this.reset()
                                _this.getImageData();
                               }
    
                        });
                    });
                });
                uploader.on('fileQueued', function (file,data) {
                    uploader.options.formData.url = $("#getpath").val();
                    uploader.upload();
                    uploader.on('uploadSuccess', function (file, data) {
                        alert(data.state);
                        if (data.state = "添加图片成功") {
                            _this.reset();
                            _this.getImageData();
                        }
                    });
                  
                
                })
                /*返回上级*/
                domUtils.on($G('back'), 'click', function (e) {
                    imgPath = $("#getpath").val().substr(0, $("#getpath").val().lastIndexOf('/'));
                    $("#getpath").val(imgPath);
                    _this.reset();
                    _this.getImageData();
                  
                });
                /* 选中文件 */
                domUtils.on(this.container, 'click', function (e) {
                    var target = e.target || e.srcElement,
                        li = target.parentNode;
                    var url = editor.getActionUrl(editor.getOpt('imageManagerActionName')),
                   isJsonp = utils.isCrossDomainUrl(url);
                    imgPath = $(li.innerHTML).attr("_src");
                    if (imgPath.indexOf('.') == -1) {
                        ajax.request(url, {
                            'dataType': isJsonp ? 'jsonp':'',
                            'data': utils.extend({
                                imgPath: imgPath,
                                seek:"",
                                start: this.listIndex,
                                size: this.listSize
                            }),
                            'method': 'get'
                        });
                        imgPath = imgPath.replace("/Picasa/upload/image", "");
                        $("#getpath").val(imgPath);
                        _this.reset()
                        _this.getImageData();
                    }
                    if (li.tagName.toLowerCase() == 'li') {
                        if (domUtils.hasClass(li, 'selected')) {
                            domUtils.removeClasses(li, 'selected');
                        } else {
                            domUtils.addClass(li, 'selected');
                        }
                    }
                });
            },
            /* 初始化第一次的数据 */
            initData: function () {
    
                /* 拉取数据需要使用的值 */
                this.state = 0;
                this.listSize = editor.getOpt('imageManagerListSize');
                this.listIndex = 0;
                this.listEnd = false;
    
                /* 第一次拉取数据 */
                this.getImageData();
            },
            /* 重置界面 */
            reset: function() {
                this.initContainer();
                this.initData();
            },
            /* 向后台拉取图片列表数据 */
            getImageData: function () {
                var _this = this;
    
                if(!_this.listEnd && !this.isLoadingData) {
                    this.isLoadingData = true;
                    var url = editor.getActionUrl(editor.getOpt('imageManagerActionName')),
                        isJsonp = utils.isCrossDomainUrl(url);
                    ajax.request(url, {
                        'timeout': 100000,
                        'dataType': isJsonp ? 'jsonp':'',
                        'data': utils.extend({
                                imgPath: imgPath,
                                seek: $G('sel').value, 
                                start: this.listIndex,
                                size: this.listSize
                            }, editor.queryCommandValue('serverparam')),
                        'method': 'get',
                        'onsuccess': function (r) {
                            try {
                                var json = isJsonp ? r:eval('(' + r.responseText + ')');
                                if (json.state == 'SUCCESS') {
                                    _this.pushData(json.list);
                                    _this.listIndex = parseInt(json.start) + parseInt(json.list.length);
                                    if(_this.listIndex >= json.total) {
                                        _this.listEnd = true;
                                    }
                                    _this.isLoadingData = false;
                                }
                            } catch (e) {
                                if(r.responseText.indexOf('ue_separate_ue') != -1) {
                                    var list = r.responseText.split(r.responseText);
                                    _this.pushData(list);
                                    _this.listIndex = parseInt(list.length);
                                    _this.listEnd = true;
                                    _this.isLoadingData = false;
                                }
                            }
                        },
                        'onerror': function () {
                            _this.isLoadingData = false;
                        }
                    });
                }
            },
            /* 添加图片到列表界面上 */
            pushData: function (list) {
                var i, item, img, btns, icon, _this = this,
                    urlPrefix = editor.getOpt('imageManagerUrlPrefix');
                for (i = 0; i < list.length; i++) {
                    if(list[i] && list[i].url) {
                        item = document.createElement('li');
                        img = document.createElement('img');
                        icon = document.createElement('span');
    
                        domUtils.on(img, 'load', (function(image){
                            return function(){
                                _this.scale(image, image.parentNode.offsetWidth, image.parentNode.offsetHeight);
                            }
                        })(img));
                        img.width = 113;
                        img.setAttribute('src', urlPrefix + (list[i].url.indexOf('.') == -1 ? 'upload/folder-64.gif' : list[i].url));
                        img.setAttribute('_src', urlPrefix + list[i].url);
                        icon.setAttribute('title',list[i].url.substr(list[i].url.lastIndexOf('/') + 1));
                        domUtils.addClass(icon, 'icon');
                        item.appendChild(img);
                        item.appendChild(icon);
                        /*添加名称*/
                        item.appendChild($("<div style='position:absolute;text-align: center;top: 113px;left: 0px;width: 113px;background-color: white;'>" + list[i].url.substr(list[i].url.lastIndexOf('/') + 1) + "</div>")[0]);
                        /* 添加删除功能 */
                        item.appendChild($("<span class='delbtn' url='" + list[i].url + "'>✖</span>").click(function () {
                            var del = $(this);
                            try {
                                window.event.cancelBubble = true; //停止冒泡
                                window.event.returnValue = false; //阻止事件的默认行为
                                window.event.preventDefault();    //取消事件的默认行为  
                                window.event.stopPropagation();   //阻止事件的传播
                            } finally {
                                if (!confirm("确定要删除吗?")) return;
                                $.post(editor.getOpt("serverUrl") + "?action=deleteimage", { "path": del.attr("url") }, function (data) {
                                    if (data.state == "ok") del.parent().remove();
                                    else alert(data);
                                });
                            }
                        })[0]);
                        
                        this.list.insertBefore(item, this.clearFloat);
                    }
                }
            },
            /* 改变图片大小 */
            scale: function (img, w, h, type) {
                var ow = img.width,
                    oh = img.height;
    
                if (type == 'justify') {
                    if (ow >= oh) {
                        img.width = w;
                        img.height = h * oh / ow;
                        img.style.marginLeft = '-' + parseInt((img.width - w) / 2) + 'px';
                    } else {
                        img.width = w * ow / oh;
                        img.height = h;
                        img.style.marginTop = '-' + parseInt((img.height - h) / 2) + 'px';
                    }
                } else {
                    if (ow >= oh) {
                        img.width = w * ow / oh;
                        img.height = h;
                        img.style.marginLeft = '-' + parseInt((img.width - w) / 2) + 'px';
                    } else {
                        img.width = w;
                        img.height = h * oh / ow;
                        img.style.marginTop = '-' + parseInt((img.height - h) / 2) + 'px';
                    }
                }
            },
            getInsertList: function () {
                var i, lis = this.list.children, list = [], align = getAlign();
                for (i = 0; i < lis.length; i++) {
                    if (domUtils.hasClass(lis[i], 'selected')) {
                        var img = lis[i].firstChild,
                            src = img.getAttribute('_src');
                        list.push({
                            src: src,
                            _src: src,
                            alt: src.substr(src.lastIndexOf('/') + 1),
                            floatStyle: align
                        });
                    }
    
                }
                return list;
            }
        };


    展开全文
  • Ueditor上传文件demo-Java版 ,基于原版本修改,只需要UEditor下的js和配置,不需要导入jar包, 不再使用controller.jsp , 可以自定义图片上传路径,位置 。 ...
  • 网上现有的删除教程不对,如果删不干净,在IE浏览器下,选择图片的按钮就要消失不见啦~ 我这里是1.4.3 php版本 因为已经删完了 所以也找不到原来的内容了(主要是懒),所以大体说一下怎么删,自己留个记录。 ...

    网上现有的删除教程不对,如果删不干净,在IE浏览器下,选择图片的按钮就要消失不见啦~

    我这里是1.4.3 php版本

    因为已经删完了 所以也找不到原来的内容了(主要是懒),所以大体说一下怎么删,自己留个记录。

    dialogs\image\image.js 

    删除头部  var 定义的两个相关变量

    删除后面相关的函数

    dialogs\image\image.html

    删除

    <span class="tab" data-content-id="online"><var id="lang_tab_online"></var></span>
    <span class="tab" data-content-id="search"><var id="lang_tab_search"></var></span>

    还有下面注释的在线图片和图片搜索代码段

    dialogs\background\background.js

    删除头部变量

    底部搜索一下,搜索刚才定义的变量,出现关键词的函数统统删

     

    这就差不多了。。如果解决您的问题,期待您的留言支持!

     

    转载于:https://www.cnblogs.com/baiban/p/4476528.html

    展开全文
  • 第一步:找到ueditor文件夹下的ueditor.config.js下toolbars参数,新增一个字符串showmsg(根据添加功能自定义命名),同时新增一个labelMap用于鼠标移入显示自定义提示信息 //工具栏上的所有的功能按钮和下拉框,可以...
  • Ueditor去掉图片之间的间隙

    千次阅读 2019-05-29 18:19:40
    第一步:找到并打开 ueditor.all.min.js 第二步:在ueditor.all.min.js里搜索 p{margin:5px 0;}</style> 在p{margin:5px 0;}</style>前面添加img{vertical-align:top;outline-width:0px;} 我找了...
  • ueditor 上传图片错误

    千次阅读 2017-04-17 17:53:56
    解决:WEB-INF 下的commons-io 包只能有一个,删除版本较低的那一个(手动删除
  • 1、下载ueditor1.4.3.3 UTF-8的版本 2、新建一个项目,在项目中添加UEditor,把下载好的插件都放在ueditor这个文件夹中,在进行一些基本的配置 3、在根目录下新建一个为index.aspx的网页,在进行如下的配置,...
  • 说明:ueditor控件默认是把图片上传到默认的控件内部地址的,如果我们重新换包,图片肯定会清空。我们在开发的时候,肯定要将这个目录上传到固定的目录(文件服务器)中,防止被清空。准备:1.我的工程(工程名为test...
  • ueditor增加删除文件功能

    千次阅读 2017-06-11 14:47:51
    ueditor默认的文件管理可以单独拿出来使用,api很方便,但是没有提供对已上传文件的删除功能,下面简单整个删除功能,思路是通过ajax调用服务器端的ashx文件删除。前端修改html改动一切从简,就不给每个文件来个删除...
  • 方法来源于网络   1、新建一个删除的php文件,路径: ueditor\dialogs\image\action_delete.php &lt;... * 删除 ueditor 目录下的文件 *---------------------------*/ function safe_...
  • 清理ueditor中上传的无用的图片

    千次阅读 2017-10-17 22:27:31
    当我们在ueditor中按backspace键删除现有文章的图片时,虽然在文章中图片已经被删除,但是在服务器的图片并没有被删除,这样当文章量很多,而且需要频繁修改文章的内容时,在服务器中就会存在很多无用的图片(这就是...
  • 最近开发一个全新的文章录入功能 由于之前封装的不太好用,今天重新走了一遍流程,从百度官方下载ueditor开始 首先到官方下载好ueditor PHP包 ...这时候需要几个地方的配置,首要的就是图片图片配置文...
  • 支持图片上传到云服务器后删除本地服务器的对应冗余图片从而减少服务器磁盘空间用量 即使Typecho安装在SAE(Sina APP Engine)上也能正常使用 需要注意 启用此插件后请关闭Typecho自带的文件上传功能 Typecho 1.0/0.9...
  • 一开始报:ueditor 后端配置项没有正常加载,上传插件不能正常使用! 刚开始是按官网的操作,在umeditor根目录创建一个WEB-INF下放lib的jar包,结果是在本地Tomcat操作,重启下Tomcat就可以了。而在公司的模拟库...
  • 增加Ueditor在线管理图片删除功能

    千次阅读 2016-03-21 11:18:13
     编辑器中图片拉伸的问题 其实可以修改成等比拉伸 这样可以避免误操作引起的图片不好看的问题 如果您不介意 那么可以不 用看: 修改ueditor.all.js 大约16970行 (如果您用的是ueditor.all.mi
  • ueditor上传图片到阿里云OSS

    万次阅读 2020-03-12 11:27:51
    最近在完成小程序需求的时候,需要使用ueditor上传图片,但是图片不想存放本地,想要传到阿里云OSS上,所以我就百度了下,结果还是看到可以参考到地方,今天跟大家分享下如何修改适应,前提得你能成功上传图片,才来...
  • Ueditor编辑器图片上传

    2018-09-13 11:29:44
    Ueditor编辑器图片上传 UEditor图片上传采用了Flash上传的方式,在功能上支持批量、本地预览和实时进度提示,在界面上支持自定义背景、上传按钮和预览框等视觉元素的样式属性,基本能够满足各种用户的不同上传...
  • 现在的问题是当使用ueditor上传图片的时候,选择了图片就立刻上传到指定的文件夹里,而后续即使没有保存该篇文章内容,即取消操作,图片还是上传了,就相当于上传的图片是无用的,没有给任何文章或者用户来使用,该...
  • 最近项目里需要用到富文本编辑器,同事选择里百度出的ueditor,但是里面自带的图片上传功能需要后台配合,配置成服务器地址,和我们实际情况不是太符合,于是另想办法,搞定图片上传。 重写配置项 首先重写里...
  • ueditor 上传图片去掉高度属性方法

    千次阅读 2016-09-02 17:07:01
    在下面代码中 查找 setsize 参数即可image.html<!doctype html> <title>ueditor图片对话框 <script type="text/javascript" src="../internal.js"></script> <!-- jqu
  • 如何在vue3.0项目中使用ueditor上传图片并回显 含token(vue+vue-ueditor-wrap)欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的...
  • ueditor 图片上传路径配置

    千次阅读 2017-09-22 17:15:01
    以下是我遇到的一些因为ueditor默认设置引起的图片上传路径配置的问题,特此拿出来与大家分享,如果有说的不对的,欢迎批评指正 一、ueditor图片上传保存路径 默认在网站根目录下,最前面的 '/' 就是网站根...
  • 通过百度UEditor编辑器设置图片的描述时,会自动添加width、height、border、vspace以及style属性,style属性中也包含width与height,也就是编辑器同时设置了两组宽高。而我们要做到的是使UEditor编辑器设置图片宽...
  • ueditorjsp版本上传图片到oss

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,488
精华内容 995
关键字:

ueditor删除图片事件