需求:上傳圖片操作處理,但是必須要添加完一個新的車型纔可以,也就是說添加新車型完事後,還得操作一個更新處理,因爲上傳那波圖片還得保存到其他路徑 (比如:你上傳圖片的路徑是:/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()}>)