LoginSignup
13
12

More than 5 years have passed since last update.

【Laravel】アップロードした動画ファイルの形式をチェックする方法

Posted at

概要

フォームからアップロードしたファイルの形式を、バリデーションでチェックするように実装したい時ってありますよね?

Laravelでは、デフォルトで用意されているバリデーションルールに、ファイルの形式をチェックするmimesというルールがあります。
https://readouble.com/laravel/5.1/ja/validation.html#rule-mimes

mimes:foo,bar,...
フィールドで指定されたファイルが拡張子のリストの中のMIMEタイプのどれかと一致することをバリデートします。

公式ドキュメントには、基本的な使用方法として、下記のような画像の形式を指定する方法が記述されています。

'photo' => 'mimes:jpeg,bmp,png'

このmimesを用いて、動画ファイルの形式をチェックすることが可能か試してみました。

mimesルールで指定できる動画ファイルの形式

基本的には下記サイトにあるような、MIMEタイプを指定することで、チェックすることができます。
一部判明したものを表に載せます。
:warning: 拡張子ではないので注意)
http://www.tagindex.com/html5/basic/mimetype.html

動画の拡張子 指定できるMIMEタイプ
.mp4 mp4
.mov qt
.wmv x-ms-wmv
.mpeg .mpg mpeg
.avi x-msvideo

QuickTime Playerでおなじみの.movファイルは、quicktimeでもなく、movでもなく、qtです。
これに気づくのにとても時間が掛かってしまいました…。

同じように調べている人がいましたら、この記事が参考になれば幸いです。

サンプル

app/Http/Requests/HogeRequest.php
    protected function getVideoRule($key)
    {
        return [$key => 'required|mimes:mp4,qt,x-ms-wmv,mpeg,x-msvideo'];
    }
13
12
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
13
12