第一,需要添加一个 php 文件来实现删除功能,文件添加到: ueditor /php /action_delete.php 代码内容:
<?php /*--------------------------- * action_delete.php * 删除 ueditor 目录下的文件 *---------------------------*/ function safe_replace($string) { $string = trim($string); $string = str_replace(array('',';',''','%2527','%27','%20','&', '"', '<', '>'), array('','','','','','','&', '"', '<', '>'), $string); $string=nl2br($string); return $string; } try{ $path = safe_replace($_POST@['path']); $path = str_replace('../', '', $path); $path = str_replace('/', '', $path); //安全判断(只允许删除 ueditor 目录下的文件) if(stripos($path, 'ueditor') == 0 || stripos($path, 'ueditor') === false) { 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($("").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; width: 4px; height: 10px; background-image: url(images/gtk-del.png); background-repeat: no-repeat; }
下面这段是设背景图,可自己添加删除图,不然无法显示删除按钮,只显示按钮颜色,虽然可以用,但不美观。
background-image: url(images/gtk-del.png);