laravel 圖片上傳

根據個人場景更改配置config\filesystems.php

//我這個是做文章圖片上傳,就命名 article ,學習的話可以使用默認的配置

'disks' => [

        'local' => [
            'driver' => 'local',
            'root' => storage_path('app'),
        ],

        'public' => [
            'driver' => 'local',
            'root' => storage_path('app/public'),
            'url' => env('APP_URL').'/storage',
            'visibility' => 'public',
        ],

        'article' => [
            'driver' => 'local',
            'root' => public_path('/article'), // public_path 就是public的路徑 
            'url' => env('APP_URL').'/storage',
            'visibility' => 'public',
        ],

        's3' => [
            'driver' => 's3',
            'key' => env('AWS_ACCESS_KEY_ID'),
            'secret' => env('AWS_SECRET_ACCESS_KEY'),
            'region' => env('AWS_DEFAULT_REGION'),
            'bucket' => env('AWS_BUCKET'),
            'url' => env('AWS_URL'),
        ],

    ],


處理流程

//在控制器寫一個上傳方法
public function upload_img(Request $request)
    {
        if ($request->isMethod('POST')) { //判斷文件是否是 POST的方式上傳
            $tmp = $request->file('file');
            $path = '/article'; //public下的article
            if ($tmp->isValid()) { //判斷文件上傳是否有效
                $FileType = $tmp->getClientOriginalExtension(); //獲取文件後綴

                $FilePath = $tmp->getRealPath(); //獲取文件臨時存放位置

                $FileName = date('Y-m-d') . uniqid() . '.' . $FileType; //定義文件名

                Storage::disk('article')->put($FileName, file_get_contents($FilePath)); //存儲文件

                return $data = [
                    'status' => 0,
                    'path' => $path . '/' . $FileName //文件路徑
                ];
            }
        }
    }

執行完 後會在 public\article看見上傳的圖片
 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章