После сканирования почти всех ударов Google и SO, я до сих пор не могу это исправить.Служить изображение из папки хранилища для просмотра в Laravel 5
В моем приложении пользователь может загрузить изображение. Поскольку данные пользователя довольно чувствительны, я сохраняю все в папке хранилища и использую php для обслуживания изображения.
Посмотреть
<img src="{{ asset('logo/' . $organization->logo_thumbnail_path) }}" alt="">
Маршрут
Route::get('logo/{logo}', function($logo) {
$image = Image::make(Storage::disk('logo-image')->get($logo));
$image->response();
});
Маршрут выглядит в storage/app/img/logo
для соответствующего файла. Если я эхо Storage::disk('logo-image')->get($logo)
, я получаю огромную страницу странных персонажей, которая заставляет меня поверить, что она действительно получает изображение .jpg.
Однако изображение не отображается, даже если я посещаю маршрут напрямую.
Кроме того, если я изменю маршрут, чтобы вернуть меня на домашнюю страницу, и я открою представление, в котором изображение должно отображаться, ничего не происходит. Это заставляет меня думать, что маршрут никогда не вызывается из тега <img>
.
Неужели кто-нибудь из вас знает об этом больше? Я довольно застрял, и часы поиска ничего не сделали.
EDIT: Вручную устанавливая все заголовки и прочее в ответе, убедитесь, что изображение отображается.
Я принимаю дикие предположения здесь, но я предполагаю, что заголовки верны? – Andrew
Я использую библиотеку вмешательства/изображения, в которой говорится, что метод response(), который я вызываю, должен содержать все правильные заголовки. Кроме того, если я повторяю ответ «$ image->», я получаю еще одну огромную страницу странных символов. http://image.intervention.io/api/response – Loek
Возможный дубликат [Laravel 5 - Как получить доступ к изображению, загруженному в хранилище в представлении?] (http://stackoverflow.com/questions/30191330/laravel-5-how -to-access-image-uploaded-in-storage-in-view) – aynber