1. 程式人生 > >Laravel5.5 檔案上傳

Laravel5.5 檔案上傳

一、配置檔案

進入/config/filesystems.php,在 disks 新增上傳檔案配置資訊:

'upload' => [
    'driver' => 'local',
    'root' => public_path('upload/'),
],

  效果如下: 

  

二、模版頁面

<div class="mws-form-row">
  {!! Form::label('image','上傳頭像:',['class'=>'mws-form-label']) !!}
  {!! Form::file('image') !!}
</div>

三、控制器

use Illuminate\Http\Request;
use Illuminate\Support\Facades\Storage;

public function store(Request $request)
{
    if ($request->hasFile('image') && $request->file('image')->isValid()) {
        $return $this->uploadFile($image);
    }

    return "沒有上傳檔案";
}


private function uploadFile($image, $id = 0) {
    // 獲取上傳檔名稱
    $originalName = $image->getClientOriginalName();
    // 獲取上傳檔案字尾
    $ext = $image->getClientOriginalExtension();
    // 獲取上傳檔案路徑
    $realPath = $image->getRealPath();
    // 獲取上傳檔案的Mime型別
    // $type = $image->getClientMimeType();

    $newFileName = 'adminer/'. date('Ymd') . '/' . md5(microtime()). '.' . $ext;

    if (Storage::disk('upload')->put($newFileName, file_get_contents($realPath))) {
        return '/upload/'. $newFileName;
    }

    return null;
}

四、模版中讀取檔案

<img src="{{ $image }}" />