封裝圖片處理方法

案例一:小程序的圖片處理
$file = request()->file('uploadimg'); //接收圖片
        //建立圖片存放位置
        $upload_dir = ROOT_PATH . 'public/upload/images/';
        if (!file_exists($upload_dir)) {
            mkdir($upload_dir, 0755, true);
        }
      
        if ($file) {
// 移動到框架應用根目錄/public/uploads/ 目錄下
$info = $file->rule('date')->move($upload_dir); if ($info) { //獲取文件名 $image_name = $info->getSaveName(); $fileurl = '/upload/images/'. $image_name; return $fileurl; } }else{ echo "錯誤"; }



案例二:base64圖片處理方法
class Image extends Base
{
    public function addimage($file = 'images')
    {
        $img_url    = input('avatar') ? input('avatar') : "";
        if ($img_url) {
       //若是是http格式的不須要處理直接返回
            if (substr($img_url, 0, 4) == 'http') {
                $src = $img_url;
                return $src;
                exit;
            } else {
//處理圖片
                $image_arr  = explode(',', $img_url);
                $img_data   = $image_arr[1];
                $img        = str_replace(' ', '+', $img_data);
                $fileData   = base64_decode($img);
                $image_name = uniqid() . '.png';  //返回13位字符串
                $upload_dir = ENV::get('root_path') . 'public/upload/' . $file . '/';
                if (!file_exists($upload_dir)) {
                    mkdir($upload_dir, 0755, true);
                }
                $filedir = $upload_dir . '/' . $image_name;
                $src = config('website') . '/upload/' . $file . '/' . $image_name;
                $status = file_put_contents($filedir, $fileData);
                if ($status) {
                    return json(['status' => 1, 'data'=>$src,'msg' => '操做成功']);
                    exit;
                } else {
                    echo "0";exit;
                }
            }
        } else {
            return json(['status' => 0,'data'=>'', 'msg' => '請選擇正確的圖片格式!']);
        }
    }
}

案例三:視頻轉mp4格式的處理

$video_url        = input('video'); //商品視頻
        $uid              = input('uid'); //用戶身份id
        if($video_url){
            $video_arr    = explode( ',', $video_url );
            $video_data   = $video_arr[1];
            $video        = str_replace( ' ', '+', $video_data );
            $fileData     = base64_decode( $video );
            //設置文件保存位置,若文件夾不存在 則建立文件夾
            $video_name   = $uid.time() . '.mp4';
            $upload_dir   = ENV::get('root_path') . 'public/upload/product_video/';
            if ( ! file_exists( $upload_dir ) ) {
                mkdir( $upload_dir, 0755, true );
            }
            //保存地址
            $filedir      = $upload_dir . '/' . $video_name;
            //視頻連接
            $fileurl      = config( 'website' ) . '/upload/product_video/'. $video_name;
            //保存到服務器
            $status       = file_put_contents( $filedir, $fileData );
            //確認是否保存到服務器
            if($status){
                //設置視頻縮略圖名字
                $tmp_name = uniqid();

                //執行linux ffmpeg命令 $fileurl 爲視頻可訪問連接  最後一個參數是圖片服務器保存路徑
                $linux    = "ffmpeg -i $filedir -r 1 -f image2  /www/wwwroot/qmh/public/upload/video_img/".$tmp_name.'.jpg';
                exec($linux);   //沒有執行

                //定義視頻縮略圖連接 返回視頻連接和縮略圖連接
                $url      = config( 'website' ) . '/upload/video_img/' . $tmp_name.'.jpg';
                $url = $linux;
                // return json(['video_url'=>$fileurl,'img_url'=>$url]);                return json(['status' => 1,'data'=>['video_url'=>$fileurl,'img_url'=>$url],'msg' => '視頻上傳成功'],200);            }else{                return json(['status' =>0,'data'=>'','msg' => '視頻上傳失敗'],200);            }        }
相關文章
相關標籤/搜索