zoukankan      html  css  js  c++  java
  • UEditor 添加在线管理图片删除功能 (转载)

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

    <?php
      
    /*---------------------------
     * 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();
    }

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

    ....
      
    switch ($action) {
      
        ....
        
        /* 删除图片命令处理 */
        case 'deleteimage':
             $result = include('action_delete.php');
             break;
         
        /* 在 default 之前添加 */
        default:
            $result = json_encode(array(
                'state'=> '请求地址出错'
            ));
            break;
      
    }
      
    ....

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

    ....
      
    /* 在这两句之后添加 */
    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);
      
    ....

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

    /* 在线管理删除按钮样式 */
    #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: 10px 12px;
        text-align: center;
        background-color: #d9534f;
        background-image: url(./images/icons.png);
        background-repeat: no-repeat;
        background-position-x: -45px;
        background-position-y: -23px;
    }

    原文地址: https://yq.aliyun.com/articles/513138/

  • 相关阅读:
    PHP数据库备份文件分卷导入的实现思路
    用delphi如何实现启动停止windows服务
    【创意logo】第23个世界无烟日 让烟草远离女性
    修改“windows xp资源管理器”的默认打开路径
    PHP百行代码快速构建简易聊天室
    简单的方法实现判断Mysql内某个字段Fields是否存在
    Blackhand的插件管理部分
    PHP 与 ASP.NET 正面交锋
    C语言运算符
    功能齐全的发送邮件类
  • 原文地址:https://www.cnblogs.com/500m/p/12919052.html
Copyright © 2011-2022 走看看