【发布时间】:2011-09-20 23:43:28
【问题描述】:
在我的表单中,我定义了这个文件上传字段:
$this->setEnctype(Zend_Form::ENCTYPE_MULTIPART);
$logo = $this->createElement('file', 'logo');
$logo->setLabel('Group logo')
->setMaxFileSize(5242880) // 5mb
->addValidator('IsImage')
->addValidator('Count', false, 1)
->addValidator('Size', false, 5242880)
->addValidator('Extension', false, array('jpg', 'jpeg', 'png', 'gif'));
但是,无论我上传多么小的文件,我都会收到此错误:文件 'logo' 超出了定义的 ini 大小。
错误消息看起来很简单,所以我检查了 php 配置(phpinfo() 在处理表单的同一页面上)
- file_uploads:开启
- upload_max_filesize: 2000M
- memory_limit:128M
- post_max_size: 8M
虽然这些值并不完全有意义,但它们绝对应该允许我上传高达 8Mb 的文件,但上传总是失败并显示上面的消息。即使文件小于 1Kb 也会失败。我也尝试删除所有设置器/验证器,但仍然失败。
在寻找答案时,我发现一些帖子说这是 ajax 的错,但这是一种常规形式,所以现在我被卡住了。
更新:非常抱歉浪费了您的时间,页面上还有另一个未封闭的表格使多部分声明无效。如果我用更大的文件而不是小文件进行测试,本可以更快地发现这一点:/
【问题讨论】:
标签: php file-upload zend-form