编程语言
首页 > 编程语言> > PHP-Symfony2文件大小约束形式

PHP-Symfony2文件大小约束形式

作者:互联网

我试图将文件大小约束添加到我的表单中,以禁止用户上传大于2M的文件(在php.ini中设置),并且尝试了以下操作:
在formBuilder中:

->add('avatar', 'file', array( 
            'label'  => 'Insert foto',
            'required' => false,
            'constraints'=> array(
                new File(array('maxSize'=>'2048k',
                'maxSizeMessage'=>'More than 2MB!!'))),
            'label_attr'   =>  array(
                'class' => 'control-label'
            ),
            'attr'   =>  array(
                'class'           => 'form-control filestyle',
                'placeholder'     => 'Foto'... etc,

我也将文件属性添加到我的主要实体类

    /**
 * @Assert\File(
 *     maxSize = "2048k",
 *     mimeTypes = {"image/png"},
 *     mimeTypesMessage = "Please upload a valid PNG file",
 *     maxSizeMessage = "Upload not more than 2M size files"
 * )
 */
protected $avatar;

在我的控制器中,我得到了这个文件:

$file = $form['avatar']->getData();

但是仍然只有在文件实际上传到我的服务器之后,才能进行所有操作.如果它大于2MB,我不想上传它,而是想显示一条错误消息.也许我应该使用Formevents,但是没有找到有效的示例.任何想法都会有所帮助.谢谢.

解决方法:

如果要在上传文件之前检查文件大小,则需要输入JavaScript approach.

PHP(和Symfony)是服务器端,仅在上传文件后才能处理. JavaScript是客户端,可以在上传文件之前检查文件.

我会忍受它被上传并按您目前的状态进行检查;这是最可靠的方法.

标签:symfony,symfony-forms,php
来源: https://codeday.me/bug/20191118/2031906.html