laravel標準バリデートのmimetypesだと、video/*にしても、video/3gppなどが引っかかったり、拡張子AMRなどMIME取得できないファイルをOKにしたかったので、独自バリデートを実装してみた。

laravel標準バリデートのmimetypesだと、video/*にしても、video/3gppなどが引っかかったり、拡張子AMRなどMIME取得できないファイルをOKにしたかったので、独自バリデートを実装してみた。

以前の記事でいけるかと思ったら無理だった…。

laravel5.5で、音声ファイルだけファイルアップロード出来るようにしたい!

video/*にしても、video/3gppなどが引っかかるのが謎なんだよね・・・。
たいていの音声・動画ファイルは上手くいくけど、たまにMIME取得できているのにバリデーションエラーになるのは何故だんだろ?laravelのバグ?

原因究明するよりも、独自バリデーションを実装した方が早そう。拡張子AMRなどMIME取得できないファイルもOKにしたいし。

独自バリデーションルールを追加する時は、app/Providers/AppServiceProvider.phpのboot()に、Validator::extendを追加する。

app/Http/Controller/HomeController.php

ダウンロード処理のMIMEも、ちゃんと指定するようにする(古い機種だと application/octet-stream では認識できないみたい)