質問: Laravel5.4でCSVファイルかどうかのバリデーションをminesにcsvを設定しただけだとダメだったのでtxtを追加して作成しました。 以下を参考にしています。 ``` mimes:csv,txt ``` するとtxtファイルも通ってしまいます。 ``` いくつかのフィールド(項目)をカンマ「,」で区切ったテキストデータおよびテキストファイル。 ``` wikiのCSVの説明を見るとCSVファイルもテキストファイルなのでLaravelの機能ではこれが限界なのでしょうか? ファイルの中身を見て以下などを見るしかないでしょうか。 ・カンマが項目数以上あるか ・拡張子がcsvであること どなたか教えてください。
回答: はい、原理上「1列目だけ入ったCSVファイル」と「途中にカンマが1つもないテキストファイル」は**全く同じもの**です。区別する方法がありません。 特定の形を期待しているのであれば、「カンマが項目数以上あるか」など「項目に区切った上で、正しい構造をしているのか」吟味するのが適当でしょう(通常、「ある特定の構造をした」CSVのみアップロードして意味ある、ということになるでしょうし)。