ueditor上传图片配置成功,但是如何删除无用的图片
我使用ueditor作为富文本编辑器,配置已经好了,上传功能也好了。
现在的问题是当使用ueditor上传图片的时候,选择了图片就立刻上传到指定的文件夹里,而后续即使没有保存该篇文章内容,即取消操作,图片还是上传了,就相当于上传的图片是无用的,没有给任何文章或者用户来使用,该如何删除这些无用的图片啊?限制图片的自动上传?
研究了半天,终于搞定了,主要思路是先把图片存放到临时文件夹ueditor_temp里,然后提交的时候通过正则表达式遍历的方式匹配查找图片,然后把图片转移到实际的文件夹中。

$content=$_POST['content'];
if(!empty($content))
{
//正则表达式匹配查找图片路径
$pattern='/<[img|IMG].*?src=[\'|\"](.*?(?:[\.gif|\.jpg|\.jpeg|\.png]))[\'|\"].*?[\/]?>/i';
preg_match_all($pattern,$content,$res);
$num=count($res[1]);
for($i=0;$i<$num;$i++)
{
$ueditor_img=$res[1][$i];
//新建日期文件夹
$tmp_arr=explode('/',$ueditor_img);
$datefloder='./Public/Upload/ueditor/image/'.$tmp_arr[5];
if(!is_dir($datefloder))
{
mkdir($datefloder,0777);
}
$tmpimg='.'.$ueditor_img;
$newimg=str_replace('/ueditor_temp/','/ueditor/',$tmpimg);
//转移图片
if(rename($tmpimg, $newimg))
{
$content=str_replace('/ueditor_temp/','/ueditor/',$content);
}
}
}
下次编辑文章内容的时候使用同样的思路,不过要先判断是否是新上传的图片,原来的就不要动了。
还有一种情况是原来已经上传的图片在被编辑的时候删除了,虽然数据库修改了,但是文件还在,所以需要和原内容进行比较之后删除。
//转移ueditor文件
if(!empty($content))
{
//正则表达式匹配查找图片路径
$pattern='/<[img|IMG].*?src=[\'|\"](.*?(?:[\.gif|\.jpg|\.jpeg|\.png]))[\'|\"].*?[\/]?>/i';
preg_match_all($pattern,$content,$res);
$num=count($res[1]);
for($i=0;$i<$num;$i++)
{
$ueditor_img=$res[1][$i];
//判断是否是新上传的图片
$pos=stripos($ueditor_img,"/ueditor_temp/");
if($pos>0)
{
//新建日期文件夹
$tmp_arr=explode('/',$ueditor_img);
$datefloder='./Public/Upload/ueditor/image/'.$tmp_arr[5];
if(!is_dir($datefloder))
{
mkdir($datefloder,0777);
}
$tmpimg='.'.$ueditor_img;
$newimg=str_replace('/ueditor_temp/','/ueditor/',$tmpimg);
//转移图片
if(rename($tmpimg, $newimg))
{
$content=str_replace('/ueditor_temp/','/ueditor/',$content);
}
}else {
$imgarr[]=$ueditor_img;
}
}
}
//删除在编辑时被删除的原有图片
if(!empty($_POST['oldcontent']))
{
//正则表达式匹配查找图片路径
$pattern='/<[img|IMG].*?src=[\'|\"](.*?(?:[\.gif|\.jpg|\.jpeg|\.png]))[\'|\"].*?[\/]?>/i';
preg_match_all($pattern,$_POST['oldcontent'],$oldres);
$num=count($oldres[1]);
for($i=0;$i<$num;$i++)
{
$delimg=$oldres[1][$i];
if(!in_array($delimg, $imgarr))
{
$delimg='.'.$delimg;
unlink($delimg);
}
}
}
这样问题就解决了,当然没有用的图片会都存在ueditor_temp文件夹里,不过是手动删除还是做个小程序来删除都是可以的。
希望对大家有帮助。
ueditor上传图片配置成功,但是如何删除无用的图片的更多相关文章
- ueditor上传图片配置
1 去ueditor文件夹下 找 ueidtors/dialogs/image/image.html -- 配置位置大概如下: 107 utils.domReady(function(){ 108 ...
- ueditor的配置和使用
ueditor下载好之后直接复制到项目的WebContent目录下,并将ueditor\jsp\lib下的jar包复制或者剪切到项目的lib目录下.先看一下效果,如下: 1.文件的上传 首先在uedi ...
- UEditor上传图片被压缩得模糊的解决方法
UEditor功能很强大,但是有个很不友好的功能:会在使用UEditor上传图片时,如果你的原始图片尺寸过大,就会先自动对图片大小进行压缩,然后将压缩的文件给servlet.也就是说,使用UEdito ...
- asp.net 百度编辑器 UEditor 上传图片 图片上传配置 编辑器配置 网络连接错误,请检查配置后重试
1.配置ueditor/editor_config.js文件,将 //图片上传配置区 ,imageUrl:URL+"net/imageUp.ashx" //图片上传提交地址 ,im ...
- UEditor上传图片到七牛云储存(c#)
我们的网站一般放在虚拟空间或者服务器上,图片如果存在本地目录,会占用很多空间和流量,还增加了负担,好的办法是把图片存放到云储存服务里面,平时用url去拿 云储存:普遍说又拍云和七牛比较好,看到七牛免费 ...
- UEditor上传图片到七牛云储存(java)
我们的网站一般放在虚拟空间或者服务器上,图片如果存在本地目录,会占用很多空间和流量,还增加了负担,好的办法是把图片存放到云储存服务里面,平时用url去拿 云储存:普遍说又拍云和七牛比较好,看到七牛免费 ...
- ueditor上传图片到七牛云存储(form api,java)
转:http://my.oschina.net/duoduo3369/blog/174655 ueditor上传图片到七牛云存储 ueditor结合七牛传图片 七牛的试炼 开发前的准备与注意事项说明 ...
- SpringBoot中使用UEditor基本配置(图文详解)
SpringBoot中使用UEditor基本配置(图文详解) 2018年03月12日 10:52:32 BigPotR 阅读数:4497 最近因工作需要,在自己研究百度的富文本编辑器UEditor ...
- Android lint 删除无用图片文件和配置文件
Android lint 删除无用.冗余的 配置文件和 图片资源 转载请注明 http://blog.csdn.net/aaawqqq?viewmode=contents Android项 ...
随机推荐
- Xcode工程编译之duplicate symbol问题引发的一些知识
概括: 文件中重复定义了一个函数.变量(比如全局变量) 工程中包含同名的文件. 一般的解决方法 1 在使用import 引入头文件时,由于疏忽,误引入.m 文件. 2 同名文件放在不同的文件夹下. 3 ...
- [daily] pandoc
学了LaTeX之后,你就会很自然的接触的另一种观点: LaTeX是专注于排版的,你需要专注于内容. 于是,请使用pandoc. 简单的说, pandoc就是可以将各种个样格式的文档转换成各种各样格式的 ...
- [skill] 补码
转载,写的很好!额,我的数学. 原文:https://www.douban.com/note/223507364/ 关于补码,看过一些书籍和网文,基本都是在“求反加一”的方法.步骤上反复强调,而对于补 ...
- Fiddler笔记一移动端连接
一.下载Fiddler 百度搜索”fiddler 下载“ ,安装最新版本 二.Fiddler手机抓包原理 在本机开启了一个http的代理服务器,然后它会转发所有的http请求和响应. Fiddle ...
- Java之旅_高级教程_实例_打印图形
1.打印菱形 public class MainClass{ public static void main(String[] args){ printStar(10); } public stati ...
- 1、python接口测试requests
import requestsimport jsonr=requests.get('http://www.baidu.com') #get 请求方式r=r ...
- Python字符串拼接的6种方法
如有其他字符串拼接方法 欢迎留言提出哦 (示例版本为Py2) 1. 加号 第一种,有编程经验的人,估计都知道很多语言里面是用加号连接两个字符串,Python里面也是如此直接用 “+” 来连接两个字符串 ...
- 命令行安装kvm虚拟机、桥接网络、用virt-manager管理
宿主机CentOS Linux release 7.2.1511 (Core),内核3.10.0-327.el7.x86_64 1.配置宿主机网络桥接 想让虚拟机有自己的ip且外网可访问,需要在安装虚 ...
- UPDATE 时主键冲突引发的思考【转】
假设有一个表,结构如下: root::> create table t1 ( -> id int unsigned not null auto_increment, ', -> pr ...
- webuploader.min.js 简单例子
一个百度开发的开源框架 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html& ...