Как использовать библиотеку обработки изображений Glide с простым PHP

Я пытаюсь использовать библиотеку обработки изображений PHP Glide для одного из моих проектов. Я следил за их документами, приведенными здесь - http://glide.thephpleague.com/1.0/simple-example/ .

Я создал «routes.php». Вот мой код.

<?php
require 'vendor/autoload.php';

// Setup Glide server
$server = League\Glide\ServerFactory::create([
    'source' => 'img/users/source',
    'cache' => 'img/users/cache',
]);

// echo '<pre>';
// print_r($server);
// echo '</pre>';

// You could manually pass in the image path and manipulations options
//$server->outputImage('users/1.jpg', ['w' => 300, 'h' => 400]);
$server->outputImage('img/users/source/1.jpg', ['w' => 300, 'h' => 400]);

Мои изображения находятся в папке с именем «img», и структура папок такая:

введите здесь описание изображения

Итак, согласно документу и моему пониманию, когда я запускаю файл «routes.php» через браузер, он должен возвращать мне URL-адрес изображения, который я жестко закодировал в коде. Но вместо этого я получаю исключение.

Исключение -

Неустранимая ошибка PHP: необработанное исключение «League\Glide\Filesystem\FileNotFoundException» с сообщением «Не удалось найти изображение img/users/source/1.jpg». в /var/www/testing/glide/vendor/league/glide/src/Server.php:465\nТрассировка стека:\n#0 /var/www/testing/glide/vendor/league/glide/src/Server. php(433): League\Glide\Server->makeImage('img/users/sourc...', Array)\n#1 /var/www/testing/glide/routes.php(16): League\Glide \Server->outputImage('img/users/sourc...', Array)\n#2 {main}\n добавлено в /var/www/testing/glide/vendor/league/glide/src/Server.php на линии 465

Нужно немного понять, как работать с этим скольжением.


person Suresh    schedule 10.04.2016    source источник
comment
У меня такая же структура кода, и ничего не отображается. Пожалуйста, помогите!   -  person IshaS    schedule 24.05.2016


Ответы (1)


Добавьте это рядом с требованием:

use League\Flysystem\Adapter\Local;
use League\Flysystem\Filesystem;
use League\Glide\ServerFactory;

Как это:

<?

require '../vendor/autoload.php';

use League\Flysystem\Adapter\Local;
use League\Flysystem\Filesystem;
use League\Glide\ServerFactory;

// Setup Glide server
$server = League\Glide\ServerFactory::create([
    'source' => '../assets/img/source',
    'cache' => '../assets/img/cache',
]);

// You could manually pass in the image path and manipulations options
$server->outputImage('01.jpg', ['w' => 300, 'h' => 400]);
person pbs    schedule 11.04.2016
comment
Привет, спасибо за ответ. Я пробовал это, но все еще не работал. Я снова получаю ту же ошибку. Можете ли вы привести пример кода, который работает на вашей стороне? - person Suresh; 12.04.2016
comment
Эй, отредактировал ответ, приведенный выше пример работает для меня. пс. я изменил папку, поэтому мне нужно '../', в вашем случае нет - person pbs; 12.04.2016
comment
Можете ли вы рассказать мне о вашей структуре файлов и папок? Все похоже на мое. Я обновил свой пост с изображением структуры папок. - person Suresh; 12.04.2016
comment
У меня есть изображения в assets/img/source и assets/img/cache, а также папка, в которой у меня есть скрипт, который обслуживает изображение, так как я не использую фреймворк. - person pbs; 12.04.2016
comment
Я понял. В последней строке вместо этой $server->outputImage('img/users/source/1.jpg', ['w' => 300, 'h' => 400]); должно быть $server->outputImage('1.jpg', ['w' => 300, 'h' => 400]); Сейчас исправлено. Большое спасибо. Я очень ценю помощь. - person Suresh; 12.04.2016
comment
У меня такая же структура кода, и ничего не отображается. Пожалуйста, помогите! - person IshaS; 24.05.2016
comment
я получил сообщение об ошибке "Класс 'League\Glide\ServerFactory' не найден. Вы знаете, как это исправить? - person Kelvin; 10.11.2016