1. 程式人生 > >UEditor 添加在線管理圖片刪除功能

UEditor 添加在線管理圖片刪除功能

ueditor 圖片刪除 在線管理

第一,需要添加一個 php 文件來實現刪除功能,文件添加到: ueditor\php\action_delete.php 代碼內容:

<?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 的處理:

....
 
switch ($action) {
 
    ....
   
    /* 刪除圖片命令處理 */
    case ‘deleteimage‘:
         $result = include(‘action_delete.php‘);
         break;
    
    /* 在 default 之前添加 */
    default:
        $result = json_encode(array(
            ‘state‘=> ‘請求地址出錯‘
        ));
        break;
 
}
 
....

第三,在圖片上添加刪除按鈕,需要修改 Js 文件:ueditor\dialogs\image\image.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);
 
....

第四,為刪除按鈕添加一個樣式,修改文件:ueditor\dialogs\image\image.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:3px 5px;
    text-align: center;
    background-color: #d9534f;
}

效果如下:

技術分享

本文出自 “王森” 博客,請務必保留此出處http://zhibeiwang.blog.51cto.com/7555525/1955197

UEditor 添加在線管理圖片刪除功能