Laravel ファイル読み書き

コントローラ

public function update(Request $request)
{
 Log::info($request);

 画像のアップロード内容
 array (
  'name' => '~',
  Illuminate\Http\UploadedFile::__set_state(array(
    'test' => false,
    'originalName' => 'test.png',
    'mimeType' => 'image/png',
    'error' => 0,
    'hashName' => NULL,
  )),
  'prescription2' =>
 )

 $form = $request->all();

 if ($request->file('prescription1')->isValid()){
   画像保存
   $path = $request->file('test')->move('storage/test', "test.png");
   $form['prescription1'] = basename($path);
 }
  
 $this->Reservation->fill($form)->save();
}

保存結果

プロジェクトディレクトリ
└app
 └Http
└config
└database
└public
 └strage strage/app/publicへのシンボリックリンク(ビューからの参照先)
└resources
└routes
└strage
 └app
  └public
   └test
    └test.png ←保存先
 └logs

ビュー

<img src="{{ asset('storage/test/test.png') }}">

ビューファイルで参照できるのはプロジェクトディレクトリ配下のpublicのみ
publicディレクトリに/storage/app/public/へのシンボリックリンクを作成しておく

php artisan storage:link;

ファイルシステム設定

※config\filesystems.php
'default' => env('FILESYSTEM_DRIVER', 'local'),

'disks' => [

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

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

  's3' => ~

],

Follow me!

次の記事

Stripe