首页 > Web开发 > 详细

ueditor上传图片配置成功,但是如何删除无用的图片

时间:2017-02-23 11:41:47      阅读:354      评论:0      收藏:0      [点我收藏+]

我使用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上传图片配置成功,但是如何删除无用的图片

原文:http://www.cnblogs.com/zst062102/p/6431971.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!