1. 程式人生 > >laravel框架上傳base64編碼圖片到多級資料夾下

laravel框架上傳base64編碼圖片到多級資料夾下

<?php
public function uploadImg($params){
$params['uid']  = '123456';
$file = $params['file'];
$uid = abs(intval($params['uid']));//1234567
$uid = sprintf("%09d", $uid);
$dir1 = substr($uid, 0, 3);//一級目錄
$dir2 = substr($uid, 3, 2);//二級目錄
$dir3 = substr($uid, 5, 2);//三級目錄
$path = 'upload/newheadimg/';
if (preg_match
('/^(data:\s*image\/(\w+);base64,)/', $file, $result)){ $type = $result[2]; $new_file = $dir1.'/'.$dir2.'/'.$dir3.'/'; $array_dir=explode("/",$new_file);//把多級目錄分別放到陣列中 for($i=0;$i<count($array_dir);$i++) { $path .= $array_dir[$i] . "/"; if (!file_exists($path)) { mkdir($path, 0700); } } $new_file
= $path.substr($uid, -2).'_avatar_small'.".{$type}"; if (file_put_contents($new_file, base64_decode(str_replace($result[1], '', $file)))){ /*這裡是資料庫操作*/ return $new_file; }else{ return false; } }else{ return false; }} ?>