Laravelでファイルをアップロードする

Laravel Laravel

ファイルをアップロードする

ファイルをアップロードするフォーム

<form action="file/upload" method="post" enctype="multipart/form-data">
    @csrf
    <input type="file" name="file" id="file">
    <input type="submit" value="送信">
</form>

enctype=”multipart/form-data”

の属性と値が必要。

アップロードされたファイルの情報を取得する

// アップロード時のオリジナルのファイル名
$original_file_name = $request->file('file')->getClientOriginalName();

// アップロードされたファイルのmimeタイプ
$type = $request->file('file')->getMimeType();

アップロードされたファイルを指定したパスへ保存する

// pitFile()でリクエストオブジェクトに含まれるfileを指定したパスへ保存する(下記でいうと、storage/app/files以下)
Storage::disk('local')->putFile('files', $request->file('file'));

デフォルトで

storage/app/

へ保存される。

アップロードされたファイルを指定したパスへ保存しつつ、保存されたときのランダムなファイル名を取得する

$upload_file_name = Storage::disk('public')->putFile('files', $request->file('file'));

ランダムに付けられたファイル名を取得することができる。上記の場合、「files/」のディレクトリ名が頭についたファイル名が取得できる。

この記事を書いた人

余分なこだわりは捨てる。それがぼくのスタイル。

PHPでWebアプリを作り、小さな花の写真を撮ってよろこんでいる人。元Webエンジニア。プログラミング講師。余分なこだわりを捨てて生きやすくなりたいと思いつつも、なかなかこだわりを捨てきれない頑固者。まろと呼んでください。

さかのうえの まろをフォローする
Laravel
シェアする