Laravel 5.5 Валидация проверки: apk не работает

Я пытаюсь подтвердить загрузку файла. Это может быть файл разных типов, включая файл vnd.android.package-archive (apk). В списке типов мимов по этой ссылке https://svn.apache.org/repos/asf/httpd/httpd/trunk/docs/conf/mime.types на которые ссылаются документы по Laravel. Однако, если я проверю .apk подайте в нем ошибки и не признает его действительным MIME.

Здесь rules массив моего файла запроса

return [
'file' => [
'max:' . config('medialibrary.max_digital_asset_file_size'),
'mimes:' . config('medialibrary.digital_media_file_mime_types')
]
];

Я устанавливаю типы пантомимы глобально в файле конфигурации медиальной библиотеки, как это

'digital_media_file_mime_types' => 'doc,docx,xls,csv,txt,pdf,zip,jpeg,jpg,png,ppt,mov,mpeg,mp4,apk',

Я тоже так пробовал

'digital_media_file_mime_types' => 'doc,docx,xls,csv,txt,pdf,zip,jpeg,jpg,png,ppt,mov,mpeg,mp4,vnd.android.package-archive',

Я могу загрузить PDF и CSV и .zip и т. Д. ОК

Любые подсказки были бы полезны.

0

Решение

ОК, я понял это. когда я положил logger(request()->all()) в верхней части массива правил запроса file вышел так

'file' =>
Illuminate\Http\UploadedFile::__set_state(array(
'test' => false,
'originalName' => 'QuickDrive.apk',
'mimeType' => 'application/vnd.android.package-archive',
'size' => 95585970,
'error' => 0,
'hashName' => NULL,
)),

Однако мне удалось отследить метод в среде Laravel, который проверяет пантомимы. в vendor/laravel/framework/src/illuminate/Validation/Concerns/ValidatesAttributes.php класс, есть validateMimes метод. Я поставил еще один регистратор внизу этого перед возвратом, чтобы посмотреть, каково было «угаданное» расширение для файла, и оно получилось как jar который, когда я посмотрел это, является application/java-archive тип файла. Таким образом, Laravel в основном угадывает, какие типы файлов, и ошибается для файлов .apk. Поэтому я добавил в jar в мой список приемлемых пантомим, и это работает нормально. Возможно, не блестяще, но преодолевает это препятствие.

0

Другие решения

Других решений пока нет …