上传图片 移动路径并修改图片名称

需求:上传图片操作处理,但是必须要添加完一个新的车型才可以,也就是说添加新车型完事后,还得操作一个更新处理,因为上传那波图片还得保存到其他路径 (比如:你上传图片的路径是:/static/upload/content/… 现在要做的事是将那个路径上传的图片转到:/static/pic/chexing/car/…下 )没完,并且挪动的同时按着规则改名(规则:需求内部规定的)
代码说事 粗暴 GD库得支持

	//处理图片已经上传的那些数据 二维数组
	$extend_img = json_decode($paramsAry['extend_img'],true);
  	unset($paramsAry['extend_img']);
  	$data['extend_img'] = $extend_img;
	//创建目录 就是它static/pic/chexing/car/
	$new_path = './static/poster/carimg/'.$brand_id.'/car/';
     //新路径
     if (!is_dir($new_path))//当路径不存在  
     {  
     	 //权限必须777 775都不可以 不信的可以试试
         mkdir($new_path, 0777, true);//创建路径  
     }
     //处理刚才那些数据处理数据 都是(/static/upload/content/big/xxxx.jpg)
     foreach ($data['extend_img'] as $key => $val) {
         $imginfo = pathinfo($val['extend_img']);
         //给图片命名 extension这个是图片后缀  new_path 新路径
         if ($val['extend_sort'] == '3') {
             $rename = $new_path.$cate_id.'_'.$val['extend_sort'].'.'.$imginfo['extension'];
         }else{
            	//内饰两幅图 任何修改或添加情况 都改成临时文件处理 
                if($val['extend_sort'] == '2'){
                    $new_aaa = '/static/poster/carimg/'.$brand_id.'/car/'.$cate_id.'_'.$val['extend_sort'].'.'.$imginfo['extension'].'.bak';
                    rename(APPLICATION_PATH.$val['extend_img'],APPLICATION_PATH.$new_aaa);
                    $val['extend_img'] = $new_aaa;
                }
                if($val['extend_sort'] == '1'){
                    $new_ccc =  '/static/poster/carimg/'.$brand_id.'/car/'.$cate_id.'_'.$val['extend_sort'].'.'.$imginfo['extension'].'.bak';
                    rename(APPLICATION_PATH.$val['extend_img'],APPLICATION_PATH.$new_ccc);
                    $val['extend_img'] = $new_ccc;
                }
                $biao_shi = '1';
         }
         //移动用rename函数 第一个参数原来图片路径,第二个是最新路径位置 移动过去
         //这个函数会删除原路径的图片 类似于unlink函数
        if(empty($biao_shi)){
               rename(APPLICATION_PATH.$val['extend_img'],$rename);
               $extend_img[] = str_replace("./", '/', $rename);
        }else{
             if($val['extend_sort'] == '3'){
                 rename(APPLICATION_PATH.$val['extend_img'],$rename);
                 $extend_imgc  = str_replace("./", '/', $rename);
             }else{
                 $new_array[] = $val['extend_img'];
             }
         }
     }
     if(empty($biao_shi)){
        $extend_img  = $extend_img;
     }else{
         $this->dealSortImg($new_array);
         $extend_img = ['1'=>'/static/poster/carimg/'.$brand_id.'/car/'.$cate_id.'_1.png','2'=>'/static/poster/carimg/'.$brand_id.'/car/'.$cate_id.'_2.png','3'=>$extend_imgc];
     }
     // 注意 底下和上边没关系 没有任何关联 以上已经移动成功了 我底下只是入库更新操作处理
     // 处理三图的顺序问题
     array_multisort($extend_img,SORT_ASC ,SORT_NUMERIC ,$extend_img);
     $extend_img = implode(",",$extend_img);
     $data['extend_img'] = $extend_img;
     // print_r($extend_img);die;
     $result = $db->update($data,['cate_id'=>$cate_id]);

在更:
其实 rename最大作用是重命名 copy函数虽然同样可以处理这个问题 但是复制出多余的还得unlink删除处理。
但是rename移动目录且重命名。一开始以为它最大的功能是移动路径,在次使用发现重命名好使,注意一点是需要些绝对路径最全路径 进行移动处理。

在更:代码重改 因为名称命名规律问题导致排序出错(页面会有缓存加时间戳 ?v=<{time()}>)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值