Получить тип изображения MIME из хранилища?

Я получаю файл из хранилища, используя:

$image = Storage::get('test.jpg');

Как я могу получить его MIME?

Я пробовал:

$mime = Storage::mimeType($image);

Без удачи.

Мне нужен тип MIME, чтобы я мог вернуть изображение в ответ:

$response = Response::make($image, 200);
$response->header('Content-Type', $mime);
return $response;

0 ответов

При использовании фасада Storage в контроллере вы можете вернуть изображение в качестве ответа в Laravel 5.7. Функция response() автоматически устанавливает требуемые заголовки, а не пытается сделать это самостоятельно.

// Option #1
return Storage::response('test.jpg'); // Local storage
// Option #2
return Storage::disk('s3')->response('test.jpg'); // If you are using an S3 driver
// Option #3
return Storage::cloud()->response('test.jpg'); // Also S3 driver unless otherwise configured

Это не задокументировано, но может быть обнаружено, просмотрев базовый код Laravel:

/vendor/laravel/framework/src/Illuminate/Filesystem/FilesystemAdapter.php

Если вам по-прежнему нужно получить тип mime по какой-либо причине, вы можете получить его, вызвав:

$mimeType = Storage::mimeType('test.jpg');
Другие вопросы по тегам