laravel 数据库里的图片重命名
现在有这样一个需求,需要把数据库里上传的文件全部重命名一个,使用如下方法可以快速处理
ini_set("max_execution_time", 0);
/*使用chunk分块处理数据*/
DB::table('xxx')->orderby('id')->where('imageurl','<>','')->chunk(100,function($rows)
{
// $list=[];
foreach ($rows as $row)
{
$fileInfo=pathinfo($row->imageurl);
$newFileName='.'.$fileInfo['dirname'].'/'.$fileInfo['filename'].time().'.'.$fileInfo['extension'];
echo '正在处理:'.$newFileName.' id:'.$row->id.'<br/>';
if(file_exists('.'.$row->imageurl))
{
rename('.'.$row->imageurl,$newFileName);
}
echo var_dump(['id'=>$row->id,'imageurl'=>substr($newFileName,1)]);
$content=ob_get_contents();
sleep(1);
DB::table('km')->where('id',$row->id)->update(['imageurl'=>substr($newFileName,1)]);
}
});
直接重命名某目录的文件
$list=glob('./upload/content/20200413/*'); foreach ($list as $row){ $fileInfo=pathinfo($row); $newFileName=$fileInfo['dirname'].'/'.$fileInfo['filename'].'_36'.'.'.$fileInfo['extension']; echo '正在处理:'.$newFileName.'<br/>'; if(file_exists($row)) { rename($row,$newFileName); } }

浙公网安备 33010602011771号