Laravel 上傳圖片到七牛雲

A_aliane發表於2019-03-06

Composer安裝

composer  require zgldh/qiniu-laravel-storage

config/app.php 中註冊服務提供者:

zgldh\QiniuStorage\QiniuFilesystemServiceProvider::class

config/filesystems.php 裡的disks中新增七牛配置:


'qiniu' => [

    'driver'  => 'qiniu',

    'domains' => [

        'default'   => 'xxxxx', //你的七牛域名

        'https'     => 'xxxxx',         //你的HTTPS域名

        'custom'    => 'xxxxx',     //你的自定義域名

     ],

    'access_key'=> '',  //AccessKey

    'secret_key'=> '',  //SecretKey

    'bucket'    => '',  //Bucket名字

    'notify_url'=> '',  //持久化處理回撥地址

],

controller程式碼

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

use zgldh\QiniuStorage\QiniuStorage;

class UploadController extends Controller

{

    /**

     * 上傳檔案到七牛

     * @author 高偉

     * @date   2016-11-09T16:58:37+0800

     * @param  Request                  $request [description]

     * @return [type]                            [description]

     */

    public function uploadFile(Request $request)

    {

        // 判斷是否有檔案上傳

        if ($request->hasFile('file')) {

            // 獲取檔案,file對應的是前端表單上傳input的name

            $file = $request->file('file');

            // Laravel5.3中多了一個寫法

            // $file = $request->file;

            // 初始化

            $disk = QiniuStorage::disk('qiniu');

            // 重新命名檔案

            $fileName = md5($file->getClientOriginalName().time().rand()).'.'.$file->getClientOriginalExtension();

            // 上傳到七牛

            $bool = $disk->put('iwanli/image_'.$fileName,file_get_contents($file->getRealPath()));

            // 判斷是否上傳成功

            if ($bool) {

                $path = $disk->downloadUrl('iwanli/image_'.$fileName);

                return '上傳成功,圖片url:'.$path;

            }

            return '上傳失敗';

        }

        return '沒有檔案';

    }

}

相關文章