6

我在我的表单中设置上传最大文件大小:

$file = new Zend_Form_Element_File('file');
$file->setLabel('File to upload:')
    ->setRequired(true)
    ->addValidator('NotEmpty')
    ->addValidator('Count', false, 1)
    ->addValidator('Size', false, 10485760) //10MB = 10,485,760 bytes
    ->setMaxFileSize(10485760)
    ->setDestination(APPLICATION_UPLOADS_DIR);
$this->addElement($file);

但是我在 Zend Framework 应用程序中收到了以下错误消息:

Notice: Your 'upload_max_filesize' config setting limits the maximum filesize to '2097152'. You tried to set '10485760' in /location/to/Zend/Form/Element/File.php on line 620

我究竟做错了什么?

4

4 回答 4

13

upload_max_filesize是 PHP 本身配置中的一个选项,独立于 Zend 框架。

如果你需要修改最大上传大小,你应该在你的php.ini文件中设置它——注意你当然也必须修改post_max_size.

于 2009-12-10T20:04:11.480 回答
5

我知道这是不久前提出的问题,但答案仍然是相关的,并且实际上不在此消息中。

原始海报指出:

Notice: Your 'upload_max_filesize' config setting limits the maximum filesize to '2097152'. You tried to set '10485760' in /location/to/Zend/Form/Element/File.php on line 620

并进一步说明:

我无法让它工作:ini_set('post_max_size', 10485760)

从技术上讲,类方法 setMaxFileSize() 与 ini_set 做同样的事情。

大部分没有记录,但在这里适用的是,您可以将此值修改为您想要的任何内容,但不超过启动时读取的 php.ini 中的值。

例如,*nix 默认值为 2M。如果您没有修改 php.ini,则只能使用 0 到 2097152 之间的数字覆盖此值。

最后一点。正如 Pascal MARTIN 的帖子中提到的,它提到了 upload_max_filesize 和 post_max_size 有点齐头并进。其他需要考虑的事情是,如果您将这些值设置为一个较大的数字,您可能需要确保您的 memory_limit 值也被考虑,因为您的脚本将由于内存耗尽而失败。

于 2012-05-08T12:43:59.063 回答
1

默认情况下,在 php 设置中upload_max_filesize为 2MB,这与上传方法中的最大文件大小无关。您可以在 php.ini 文件中增加upload_max_filesize 。

或者您也可以在您的项目.htaccess文件中更改它,这样更改仅适用于该项目。例如 :-

php_value upload_max_filesize 20M
php_value post_max_size 25M
php_value memory_limit 100M

但是保持post_max_size大于upload_max_filesize并且memory_limit应该大于post_max_size

于 2016-03-21T06:17:18.700 回答
-2

您是否覆盖了 php.ini 中的默认最大大小?

于 2009-12-10T20:03:34.477 回答