開発手帖

個人用メモ

【Laravel】ファイルアップロードのバリデーション[PDF・画像など]

【やりたいこと】
ファイルをアップロードする際に、PDFだけや画像だけといった、
特定のファイル形式のもののみ保存されるようにしたい。

【コード】
コントローラでバリデーションしてやる。

$request->validate([
    'file' => ['mimes:pdf']
]);

画像の場合、'mimes:jpeg, png, gif, bmp'でOK.
PDFの場合、'mimes:pdf'となる。

ちなみにというか、当然だがメディアタイプの判別を行っているので、mimes:pdfとしたときに photo.pngをphoto.pdfのようなファイル名に変えただけでも勿論弾いてくれる。

当初はファイル名での判定を考えていたが、メディアタイプ判定でより確実なものとできる。