Symfony 4 - ограничение формы - изображение не работает - PullRequest
0 голосов
/ 02 июля 2019

У меня есть следующий код в моем конструкторе кода (соответствующая часть):

use Symfony\Component\Validator\Constraints\Image;
..................................................
$builder->add('image', FileType::class, [
    'required' => false,
    'constraints' => [
         new Image([
             'maxSize' => '2048k'
         ])
    ]
])

Форма создана правильно, и пока все выглядит нормально. Теперь, после отправки, в контроллере у меня есть следующий код:

$form = $this->createForm(OrderReviewType::class);
$form->handleRequest($request);


if ($form->isSubmitted() && $form->isValid()) {
    dd($request->files);
}

Когда я, например, загружаю HTML-файл, я ожидаю, что проверка не удастся (ограничение - это Image). Вместо этого форма проверена. Дамп ниже:

FileController.php on line 43:
FileBag^ {#15 ▼
  #parameters: array:1 [▼
    "order_review" => array:1 [▼
      "image" => UploadedFile^ {#16 ▼
        -test: false
        -originalName: "test.html"
        -mimeType: "text/html"
        -error: 0
        path: "/tmp"
        filename: "phpOPra8g"
        basename: "phpOPra8g"
        pathname: "/tmp/phpOPra8g"
        extension: ""
        realPath: "/tmp/phpOPra8g"
        aTime: 2019-07-02 12:51:24
        mTime: 2019-07-02 12:51:24
        cTime: 2019-07-02 12:51:24
        inode: 17041021
        size: 678
        perms: 0100600
        owner: 1000
        group: 1000
        type: "file"
        writable: true
        readable: true
        executable: false
        file: true
        dir: false
        link: false
      }
    ]
  ]
}

Есть идеи, почему ограничение не работает? Ошибки не возникают.

1 Ответ

0 голосов
/ 02 июля 2019

Я был в Документации Symfony для ограничения изображения и не видел параметр maxSize.

В нем также указывается, что для проверки правильности изображения и определенного размера следует использовать параметры: minWidth, maxWidth, minHeight, maxHeight.

Я просто просматриваю документацию Symfony здесь, но неужели вы используете правильные опции для ограничения вашего изображения?

...