第一,需要添加一个 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;
}
|
效果如下:
本文转自 a928154159 51CTO博客,原文链接:http://blog.51cto.com/zhibeiwang/1955197