LARAVEL: файл должен быть типа файла: mpga

Я пытаюсь загрузить аудио / mp3-документ (15 МБ), который генерирует следующую ошибку «Файл должен быть файлом типа: mpga». Когда я загружаю другой документ аудио/mp3 (7mb), ошибка не появляется.

При проверке:

$validator = Validator::make($request->all(), [
                    'name' => 'required|string|max:255',
                    'file' => 'required|mimes:mpga'
                ]);

в php.ini

upload_max_filesize=25M
max_file_uploads=25
post_max_size=25M

Подробнее о двух файлах:

Первый документ (ошибка)

Illuminate\Http\UploadedFile {#414
  -test: false
  -originalName: "bondad (1).mp3"
  -mimeType: "audio/mp3"
  -size: 4734618
  -error: 0
  #hashName: null
  path: "C:\xampp\tmp"
  filename: "php208F.tmp"
  basename: "php208F.tmp"
  pathname: "C:\xampp\tmp\php208F.tmp"
  extension: "tmp"
  realPath: "C:\xampp\tmp\php208F.tmp"
  aTime: 2017-12-19 13:53:30
  mTime: 2017-12-19 13:53:30
  cTime: 2017-12-19 13:53:30
  inode: 0
  size: 4734618
  perms: 0100666
  owner: 0
  group: 0
  type: "file"
  writable: true
  readable: true
  executable: false
  file: true
  dir: false
  link: false
  linkTarget: "C:\xampp\tmp\php208F.tmp"
}

Второй документ (ОК)

-test: false
  -originalName: "10 minutos de meditacion respirando.mp3"
  -mimeType: "audio/mp3"
  -size: 14418620
  -error: 0
  #hashName: null
  path: "C:\xampp\tmp"
  filename: "phpBFBB.tmp"
  basename: "phpBFBB.tmp"
  pathname: "C:\xampp\tmp\phpBFBB.tmp"
  extension: "tmp"
  realPath: "C:\xampp\tmp\phpBFBB.tmp"
  aTime: 2017-12-19 13:55:16
  mTime: 2017-12-19 13:55:16
  cTime: 2017-12-19 13:55:16
  inode: 0
  size: 14418620
  perms: 0100666
  owner: 0
  group: 0
  type: "file"
  writable: true
  readable: true
  executable: false
  file: true
  dir: false
  link: false
  linkTarget: "C:\xampp\tmp\phpBFBB.tmp"

person Angel Prieto    schedule 19.12.2017    source источник
comment
я нашел ответ в этом сообщении: stackoverflow.com/questions/39594854/   -  person Angel Prieto    schedule 20.12.2017


Ответы (2)


Это может зависеть от того, что именно находится в mp3-файле. Я думаю, что лучшим решением может быть использование:

mimes:mp3

вместо:

mimes:mpga

или вы можете комбинировать несколько мимов следующим образом:

mimes:mpga,mp3
person Marcin Nabiałek    schedule 19.12.2017
comment
Или еще лучше mimes:mp3,mpga - person ceejayoz; 19.12.2017
comment
Я обнаружил, что mimetype: application/octet-stream. Как я не могу проверить этот тип? - person Angel Prieto; 20.12.2017
comment
@AngelPrieto Существует также правило проверки mimetypes, так что вы можете использовать его вместо этого, например, так: 'mimetypes:application/octet-stream,audio/mpeg` - person Marcin Nabiałek; 20.12.2017

Вы можете использовать правило проверки mimetypes для соответствия типам mime, вот пример:

$validator = Validator::make($request->all(), [
    'name' => 'required|string|max:255',
    'file' => 'required|mimetypes:audio/mp3,application/octet-stream'
]);

Надеюсь, это поможет

person YouneL    schedule 20.12.2017