Как грамотно сделать ресайз изображений в REST API?

Здравствуйте! Есть сущность Image, которая должна хранить 2 изображения (оригинал + миниатюра):
/**
 * @ORM\Entity
 * @Vich\Uploadable
 */
class Image
{
    /**
     * @ORM\Id
     * @ORM\Column(type="integer")
     * @ORM\GeneratedValue(strategy="AUTO")
     */
    private $id;

    // ..... other fields

    /**
     * 
     * @Vich\UploadableField(mapping="product_image", fileNameProperty="imageName")
     * 
     * @var File
     */
    private $imageFile;


При добавлении изображения нужно:
1) Прикрепить загруженное изображение к сущности
2) Преобразовать загруженное изображение в jpg
3) Сделать миниатюру

Если просто добавлять файл - то все более-менее понятно:
/**
     * @Rest\View()
     */
    public function postAction(Request $request)
    {
        /**
         * @var UploadedFile $uploadedFile
         */
        $uploadedFile = $request->files->get('some_file');

        $image = new Image();
        $image->setImageFile($uploadedFile);
        $isValid = $this->get('validator')->validate($image);
        if($isValid->count() !== 0)
            throw new BadRequestHttpException('Bad file');
        $om = $this->getDoctrine()->getManager();

        $om->persist($image);
        $om->flush();
    }
  • Вопрос задан
  • 237 просмотров
Пригласить эксперта
Ответы на вопрос 1
@wittyrider
systemd есть людей
Выносите это дело в отделный сервис, там ресайзите с любой библотекой например это.
Далее используете этот сервис в событиях доктрина. preUpdate/postDelete/etc.
Думаю сут поняли. Удачи !
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы