Laravel 8 не проверяет PDF-файл

#laravel

#laravel

Вопрос:

Я использую laravel версии 8, и я хотел проверить, что загруженный файл должен быть файлом PDF, я использую приведенный ниже код

 $request->validate([
      'cv'=> 'required|mimes:pdf|max:2048'
]);
 

но проблема в том, что я все еще получаю сообщение об ошибке «Резюме должно быть файлом типа: pdf», даже если я загружаю PDF-файл.

решаемая путем добавления атрибута enctype=»multipart/ form-data» в тег формы

Ответ №1:

вы можете использовать проверку mimetypes:

 $request->validate([
      'cv'=> 'required|mimetypes:application/pdf|max:10000'
]);
 

Комментарии:

1. я все еще получаю это «Резюме должно быть файлом типа: application / pdf».

2. вы уверены, что этот файл имеет расширение .pdf?

3. да, даже я пытался добавить другие расширения, такие как jpeg, просто для проверки, даже если эти расширения не проверяются

4. решаемая путем добавления атрибута enctype=»multipart/ form-data» в тег формы

Ответ №2:

До версии 5.2

 $rules  = [
    "file" => "required|mimes:pdf|max:10000"
]
 

Из документов laravel:

Несмотря на то, что вам нужно только указать расширения, это правило фактически проверяет MIME-тип файла, считывая содержимое файла и угадывая его MIME-тип.

После обновления 5.2:

Начиная с Laravel 5.2, вы можете проверять загрузку файла на соответствие полному типу MIME, новое правило проверки называется: mimetypes .

 $rules  = [
    "file" => "required|mimetypes:application/pdf|max:10000"
]
 

Комментарии:

1. теперь появляется сообщение «Резюме должно быть файлом типа: application / pdf».

2. решаемая путем добавления атрибута enctype=»multipart/ form-data» в тег формы