Laravel ファイル読み書き

$request

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();
}

Storage

メソッド一覧
メソッド 機能 備考
get('laravel.txt') ファイルを取得
put('laravel.txt', $fileContent) ファイルを作成、上書き
putFile(PATH, $file) 指定したPATHにファイルを保存 名前は一意のID
putFileAs(PATH, $file, 'laravel.txt') 指定したPATHにlaravel.txtという名前のファイルを保存
exists('laravel.txt') ファイルが存在するかチェック あればtrue
copy('laravel.txt', 'new_laravel.txt') ファイルコピー
move('laravel.txt, 'new_laravel.txt') ファイル移動
delete('laravel.txt') ファイル削除
makeDirectory('laravel_dir') ディレクトリ作成
deleteDirectory('laravel_dir') ディレクトリ削除
path('laravel.txt') ファイルのフルパス表示 ファイル名をfalseにするとrootパスが表示

use Illuminate\Support\Facades\Storage;

新規作成、上書き保存
Storage::disk(ドライバ名)->put(ファイル名, ファイルに書き込む文字列);
Storage::disk('local')->put('file.txt', 'Contents');

保存結果

プロジェクトディレクトリ
└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
Laravel 設定ファイル\filesystems.php」参照