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)]);

            }
          

        });

  

上一篇:Laravel chunk和chunkById的坑


下一篇:超大文件上传-如何上传文件-大文件上传