(Symfony 4) Liip / Imagine не может найти мое загруженное изображение - PullRequest
0 голосов
/ 25 февраля 2019

У меня нет проблем с загрузкой моих изображений на мой сервер S3 (поэтому я знаю, что путь к моим изображениям является законным), но когда я пытаюсь использовать сервис Liip / Imagine для создания изображений с измененным размером, Liip / Imagine можетне могу найти загруженное изображение.

Я создаю дамп пути к изображению следующим образом:

$idFile = $form['idFile']->getData();
dump($idFile);
die();

Вот как выглядит дамп:

ProfileController.php on line 340:
UploadedFile {#64 ▼
  -test: false
  -originalName: "file-name.png"
  -mimeType: "image/png"
  -error: 0
  path: "/tmp"
  filename: "php09sJr3"
  basename: "php09sJr3"
  pathname: "/tmp/php09sJr3"
  extension: ""
  realPath: "/tmp/php09sJr3"
  aTime: 2019-02-24 22:54:00
  mTime: 2019-02-24 22:54:00
  cTime: 2019-02-24 22:54:00
  inode: 12586620
  size: 97901
  perms: 0100600
  owner: 997
  group: 995
  type: "file"
  writable: true
  readable: true
  executable: false
  file: true
  dir: false
  link: false
}

Я знаю, что этот путь (/ tmp / php09sJr3) является допустимым, потому что все мои файлы отлично загружаются в мое хранилище S3, но когда я пытаюсь создать миниатюры в моем контроллере:

public function saveProfileEditAction(Request $request, FilterService $imagine)
{
    $form = $this->createForm(UserProfileType::class, $user);
    $form->handleRequest($request);

    if($form->isSubmitted() && $form->isValid())        {
        $idFile = $form['idFile']->getData();

        if ($idFile != null){
            // this command right here 
            $resourcePath = $imagine->getUrlOfFilteredImage($idFile->getPathName(), 'my_thumb');

я получаю следующую ошибку:

Source image not resolvable "/tmp/php09sJr3" in root path(s) "/var/www/vhosts/mywebsite.com/public"

Что еще более запутанно, так это то, что когда я проверяю, в /tmp или /var/www/vhosts/mywebsite.com/public/tmp ничего нет, однако мои файлы по-прежнему отлично загружаются на S3.

Вот мой файл конфигурации liip_imagine.yaml:

liip_imagine :
    # configure resolvers
    resolvers :
        # setup the default resolver
        default :
            # use the default web path
            web_path : ~
    # your filter sets are defined here
    filter_sets :
        # use the default cache configuration
        cache : ~
        # the name of the "filter set"
        my_thumb :
            # adjust the image quality to 75%
            quality : 75
            # list of transformations to apply (the "filters")
            filters :
                # create a thumbnail: set size to 120x90 and use the "outbound" mode
                # to crop the image when the size ratio of the input differs
                thumbnail  : { size : [120, 90], mode : outbound }
                thumb_square :  { size : [300, 300], mode : outbound }
                thumb_rectangle_md : { size : [670, 400], mode : outbound }
                thumb_hd : { size : [1920, 1080], mode : outbound }
                # create a 2px black border: center the thumbnail on a black background
                # 4px larger to create a 2px border around the final image
                background : { size : [124, 94], position : center, color : '#000000' }

Как правильно указать Liip / Imagine путь к файлу для моего загруженного файла?

1 Ответ

0 голосов
/ 25 февраля 2019

Вы должны добавить это в свой конфигурационный файл yaml (у меня liip_imagine.yaml):

loaders:
    default:
        filesystem:
            data_root: "/"

Таким образом, в рамках файла он будет выглядеть так:

liip_imagine :
    # configure resolvers
    resolvers :
        # setup the default resolver
        default :
            # use the default web path
            web_path : ~
# !!!!!!!!!!!!!!!!!!!!!START!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    loaders:
        default:
            filesystem:
                data_root: "/"
# !!!!!!!!!!!!!!!!!!!!!END!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

    # your filter sets are defined here
    filter_sets :
        # use the default cache configuration
        cache : ~
        # the name of the "filter set"
        my_thumb :
            # adjust the image quality to 75%
            quality : 75
            # list of transformations to apply (the "filters")
            filters :
                # create a thumbnail: set size to 120x90 and use the "outbound" mode
                # to crop the image when the size ratio of the input differs
                thumbnail  : { size : [120, 90], mode : outbound }
                resize : { size : [670, 400], mode : outbound }
                # create a 2px black border: center the thumbnail on a black background
                # 4px larger to create a 2px border around the final image
                background : { size : [124, 94], position : center, color : '#000000' }

Liip создаст миниатюру, изменит размер и т. Д. И переместит файл в:

http://www.yourwebsite.com/media/cache/my_thumb/tmp/phpSQFUF1

Технически на вашем сервере это будет папка /public/media/cache/my_thumb/tmp в вашей корневой папке.

...