Php Symfony2-maxSize参数不适用于文件上载

Php Symfony2-maxSize参数不适用于文件上载,php,validation,symfony,file-upload,Php,Validation,Symfony,File Upload,我的Symfony2项目有一个文件上传功能 我将maxSize参数设置为: $manuscript_file = new File(array( 'maxSize' => '20M', 'mimeTypes' => array( 'application/msword', 'application/zip', ), 'mimeTypesMessage' => 'Ple

我的Symfony2项目有一个文件上传功能

我将maxSize参数设置为:

$manuscript_file = new File(array(
        'maxSize' => '20M',
        'mimeTypes' => array(
            'application/msword',
            'application/zip',
        ),
        'mimeTypesMessage' => 'Please upload a valid manuscript file. Valid types are: doc, docx, zip',
    ));
问题是,当我试图上传2M或3M word文件时,我收到了验证消息:

 The file is too large. Allowed maximum size is 20M bytes.
你面对过吗?还是我的代码错了

我从Symfony文档中获取了以下示例:


我已经面临这个问题,所以我发布了这个解决方案(我想这对你来说也是同样的问题)

这是Symfony的一个例子,事实上,当文件大小对于PHP配置来说太大时,框架也会显示验证器错误消息,而不是得到经典的PHP错误

在当前的PHP配置中,您可能将最大上载大小限制为2M,因此Symfony显示错误

因此,请检查您的php.ini文件(Linux上为/etc/php5/apache2/php.ini),并增加最大上载大小以适合您的字段:

upload_max_filesize = 20M
别忘了重新启动apache:
apache2ctl restart

现在应该可以了


请注意,上一个Symfony版本可能已经修复,另一个解决方案可能是将您的项目升级到sf2.3(但我不确定)^^ ^

我已经面临这个问题,所以我发布了这个解决方案(我想这对您来说是相同的问题)

这是Symfony的一个例子,事实上,当文件大小对于PHP配置来说太大时,框架也会显示验证器错误消息,而不是得到经典的PHP错误

在当前的PHP配置中,您可能将最大上载大小限制为2M,因此Symfony显示错误

因此,请检查您的php.ini文件(Linux上为/etc/php5/apache2/php.ini),并增加最大上载大小以适合您的字段:

upload_max_filesize = 20M
别忘了重新启动apache:
apache2ctl restart

现在应该可以了


请注意,上一个Symfony版本可能已经修复,另一个解决方案可能是将项目升级到sf2.3(但我不确定)^^ ^

我创建了一个jQuery验证方法,以防止向服务器发送大文件,因为php无法验证它(它是西班牙语):


我创建了一个jQuery验证方法,以防止向服务器发送大文件,因为php无法验证它(西班牙语):


如果您使用POST上传文件,请注意php.ini中的POST\u max\u size限制如果您使用POST上传文件,请注意php.ini中的POST\u max\u size限制

完美,现在可以工作了,我更改了php.ini文件中的upload\u max\u filesize=30M。您认为这个值怎么样?它完全取决于您的机器存储能力以及您在服务器上存储的内容。对于word(或open)doc,我认为这是完全正确的,它们很少更高!请记住,
post_max_size
参数还应与允许的最大文件大小相匹配。否则,您将继续出现与OP相同的错误。因此,您必须将
post_max_size=21M
添加到php.ini中。完美,现在可以工作了,我更改了php.ini文件中的upload_max_filesize=30M。您认为这个值怎么样?它完全取决于您的机器存储能力以及您在服务器上存储的内容。对于word(或open)doc,我认为这是完全正确的,它们很少更高!请记住,
post_max_size
参数还应与允许的最大文件大小相匹配。否则,您将继续出现与OP相同的错误。因此必须将
post_max_size=21M
添加到php.ini中