PHP,Zend Framework:如何设置上传最大文件大小?

And*_*rew 6 php zend-framework zend-file

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

$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);
Run Code Online (Sandbox Code Playgroud)

但我在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
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

Pas*_*TIN 13

upload_max_filesize是PHP本身配置中的一个选项,与Zend Framework无关.

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


con*_*781 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
Run Code Online (Sandbox Code Playgroud)

并进一步说明:

我无法让它工作: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值也被认为是因为你的脚本因内存耗尽而失败.