【发布时间】:2019-10-30 03:59:36
【问题描述】:
我已经在我的脚本中实现了(防弹)上传器。但是当我尝试通过更改数据库表行来更新我的记录时:
我想更新并(替换)用新游戏图像更新旧游戏图像(我正在使用重命名方法)!我发现新图片上传并重命名成功,但是旧图片仍然存在在thumbs文件夹中。
这是我的代码:
$newthumb=false;
if($continue){
$bulletProof = new ImageUploader\BulletProof;
try{
if($_FILES && $_FILES['avaimage']['name']){
$name3=strtolower($game_name);
$name3=str_replace(' ', '-',$name3);
$thumbnail=$name3.'-'.generateRandomString();
$pic1=$bulletProof->uploadDir("../thumbs")->shrink(array("height"=>200, "width"=>200))->upload($_FILES['avaimage'],$thumbnail);
if($pic1){
$thumb=$pic1;
}
}
}catch(\ImageUploader\ImageUploaderException $e){
$error=$e->getMessage();
$continue=false;
}
}
我曾经在更新时删除旧文件以防止磁盘空间耗尽并保持我的网站清洁和易于管理,但是如果我更改游戏图像 10 次,我将获得 10 个差异图像等等,这是一件坏事。
这是我得到的:
我可以解释如下:
1- 用户编辑个人资料 2-用户为个人资料选择一张照片 3- 用户点击保存更新配置文件。
每次用户上传一张新的(甚至是同一张个人资料照片)时,它都会上传(并重命名)就像一张新照片一样,而保留旧的(上一张照片)原封不动。
截图#1
所以,上传一张新照片而不删除旧照片,如果我有 100 万用户,并且每个用户上传 10 张照片(并且只使用 1 张),那么我将获得 900 万个未使用的孤立文件。
即使我刷新了页面,也会上传一张新照片(因为浏览器历史记录)。 检查这个#:我点击刷新 4 次(离开页面之前)
我明白了: .
你能想象有多少孤立文件吗?
如有任何帮助,将不胜感激。
我正在使用 PHP PDO 来更新记录。
谢谢
【问题讨论】:
标签: delete-file unlink remove-if