文件上传表单的 Zend 验证器大小 - Zend Framework 2.3

Posted

技术标签:

【中文标题】文件上传表单的 Zend 验证器大小 - Zend Framework 2.3【英文标题】:Zend Validator Size for File Uploading Form - Zend Framework 2.3 【发布时间】:2015-03-17 19:24:19 【问题描述】:

我对 Zend\Validator\File\Size 有疑问;

我有一个文件输入上传器,我已将其验证器设置为:

$fileInput->getValidatorChain()
    ->attach(new Validator\File\Size(array('min' => '10kB', 'max' => '4MB')))
    ->attach(new Validator\File\UploadFile())
    ->attach(new Validator\File\isImage());

因此,此代码运行良好,但 Validator\Size 无法正常运行。如果我尝试上传的文件在 4mb 到 8mb 之间正常工作并且显示“文件超出定义的 ini 大小”,当我尝试上传大于 8mb 的文件时,它会显示此错误:

Warning: POST Content-Length of 9469269 bytes exceeds the limit of 8388608 bytes in Unknown on line 0

我的 php.ini

upload_max_filesize=8M post_max_size=8M

我想显示验证错误“文件超出定义的 ini 大小”,而且文件的大小大于 8Mb。我不明白,因为没有发生!

【问题讨论】:

【参考方案1】:

如果您想处理 8M 作为最大限制,您的 upload_max_filesizepost_max_size 应该大于 8M,否则您将收到这些警告。

如果您对这些警告感到恼火,这是一种避免它们的方法: How to prevent Warning: POST Content-Length and memory size

【讨论】:

我想上传一些图片,但每张图片必须小于 4Mb,这就是我将最大大小限制设置为 4Mb 的原因。 正如我所解释的,您需要使最大限制高于 4M,下载图像检查大小返回错误消息并删除图像以防大于 4M,另一个选项是摆脱那些警告。

以上是关于文件上传表单的 Zend 验证器大小 - Zend Framework 2.3的主要内容,如果未能解决你的问题,请参考以下文章

Zend 框架 - 定制表单验证

Zend_Dojo 表单密码文本框验证不起作用

使用 Jquery 和 Zend 进行表单验证

zend 框架子表单isValidPartial?

Zend 框架中的表单级别验证

Zend Form - 一页中的多个表单和(CSRF)令牌验证