Glide библиотека | изображение не загружается - PullRequest
0 голосов
/ 28 августа 2018

я пытаюсь включить эту библиотеку для моего локального окружения.

http://glide.thephpleague.com/1.0/config/integrations/laravel/

Текущая версия Laravel 5.5

gd2 включен в расширениях Wamp.

Кажется, я не могу понять, в чем проблема.

Путь в порядке, на нем существует изображение.

См. Следующий код для конфигурации сервера.

$server = ServerFactory::create([
            'response' => new LaravelResponseFactory(app('request')),
            'source' => $source,
            //'cache' => new Filesystem(new Adapter('../storage/app/cache/')),
            'cache' => $cache,
            'cache_path_prefix' => '.cache',
            'base_url' => 'transform-img',
        ]);

Теперь я использую это

return $server->getImageResponse($path, request()->all());

это не дает никакой ошибки.

когда я dd() это, я получаю этот ответ.

StreamedResponse {#1151 ▼
  #callback: Closure {#1177 ▶}
  #streamed: false
  -headersSent: false
  +headers: ResponseHeaderBag {#1176 ▶}
  #content: null
  #version: "1.0"
  #statusCode: 200
  #statusText: "OK"
  #charset: null
}

Закрытие обратного вызова:

#callback: Closure {#1252 ▼
    class: "League\Glide\Responses\SymfonyResponseFactory"
    this: LaravelResponseFactory {#1231 …}
    use: {▼
      $stream: stream resource @543 ▼
        timed_out: false
        blocked: true
        eof: false
        wrapper_type: "plainfile"
        stream_type: "STDIO"
        mode: "rb"
        unread_bytes: 0
        seekable: true
        uri: "D:\wamp\www\Bankrolla\storage\app/public\.cache/img/logo_no_text.png/32c8e67d979eab40a7ef6d1854f1f7cc"
        options: []
      }
    }
    file: "D:\wamp\www\Bankrolla\vendor\league\glide-symfony\src\Responses\SymfonyResponseFactory.php"
    line: "48 to 54"
  }

, так как statusCode показывает 200, и нет ошибки для файла, который не найден, тем не менее, он не загружает никакое изображение, но показывает местозаполнитель в браузере при навигации.

В чем может быть проблема. если я пытаюсь заменить имя изображения любой другой случайной строкой, я получаю ошибку для изображения, не найденного. так что это означает, что он находит изображение. ты не можешь сделать изображение.

Я гуглил, искал по их комментариям на github, не смог найти ни одной проблемы, похожей на мою.

Я получаю пустую страницу / изображение, только если загружаю его напрямую.

enter image description here

Также я заглянул в каталог кеша, он включает в себя файлы и размеры этих файлов изменяются. поэтому я не уверен, где он идет не так, даже когда он генерирует файлы кэша.

enter image description here

может быть, я здесь упускаю какую-то точку, если кто-то может указать мне правильное направление, было бы очень полезно.


Обновление:

Значение переменной $source:

Filesystem {#1225 ▼
  #adapter: Local {#1226 ▼
    #pathSeparator: "\"
    #permissionMap: array:2 [▼
      "file" => array:2 [▼
        "public" => 420
        "private" => 384
      ]
      "dir" => array:2 [▼
        "public" => 493
        "private" => 448
      ]
    ]
    #writeFlags: 2
    -linkHandling: 2
    #pathPrefix: "D:\wamp\www\Bankrolla\storage\app/public\"
  }
  #plugins: []
  #config: Config {#1229 ▼
    #settings: []
    #fallback: null
  }
}

Каталог хранения в моем общедоступном каталоге (это символическая ссылка исходного хранилища)

enter image description here

Каталог хранения Laravel

enter image description here

URL, с которого я звоню.

{localhostDomainHere}/image/img/logo_no_text.png?w=100&h=100&fit=crop-center

Ответы [ 2 ]

0 голосов
/ 10 апреля 2019

Не знаю, исправили ли вы это уже. Но мы столкнулись с той же проблемой несколько дней назад. После долгих поисков мы выяснили, что ошибка перехватывается новой строкой в ​​конфиге:

config file

Так что проверьте все ваши конфигурационные файлы на наличие пробела или новой строки перед открывающим тегом. В противном случае ваш ответ больше не является действительным, и вы получите пустое поле.

Если это не файл конфигурации, вам необходимо проверить все файлы, загруженные по запросу.

0 голосов
/ 12 сентября 2018

путь, указанный $ source =>, помещает туда изображения если это 1.jpg, тогда вызовите URL server_url / img / 1.jpg. IMG из вашего маршрута для функции, которую вы отправили в вопрос. В моем случае $ source, а также $ cache был / storage / app, и я поместил в него изображение и назвал маршрут для этого изображения. Надеюсь, это поможет вам.

Проверьте это

enter image description here Это мой код:

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

use Illuminate\Contracts\Filesystem\Filesystem;
use League\Glide\Responses\LaravelResponseFactory;
use League\Glide\ServerFactory;

class GlideController extends Controller
{
    public function show(Filesystem $filesystem, $path)
    {
        $server = ServerFactory::create([
            'response' => new LaravelResponseFactory(app('request')),
            'source' => $filesystem->getDriver(),
            'cache' => $filesystem->getDriver(),
            'cache_path_prefix' => '.cache',
            'base_url' => 'img',
        ]);

        return $server->getImageResponse($path, request()->all());
    }
}

маршрут:

Route::get('/img/{path}', 'GlideController@show')->where('path', '.*');

это содержимое моего хранилища / приложения

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...