第一,需要添加一個 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 中添加指令 deletep_w_picpath 的處理:
....
switch ($action) {
....
/* 删除圖檔指令處理 */
case 'deletep_w_picpath':
$result = include('action_delete.php');
break;
/* 在 default 之前添加 */
default:
$result = json_encode(array(
'state'=> '請求位址出錯'
));
break;
}
....
第三,在圖檔上添加删除按鈕,需要修改 Js 檔案:ueditor\dialogs\p_w_picpath\p_w_picpath.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=deletep_w_picpath", { "path": del.attr("url") }, function(result) {
if (result == "ok") del.parent().remove();
else alert(result);
});
}
})[0]);
/* 在這一句之前添加 */
this.list.insertBefore(item, this.clearFloat);
....
/* 線上管理删除按鈕樣式 */
#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;
}