簡體   English   中英

PHP,Zend Framework:如何設置上傳最大文件大小?

[英]PHP, Zend Framework: How to set the upload max filesize?

我在我的表單中設置了上傳最大文件大小:

$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

我究竟做錯了什么?

upload_max_filesize是PHP本身配置中的一個選項,與Zend Framework無關。

如果你需要修改最大上傳大小,你應該在你的php.ini文件中設置它 - 注意你當然也必須修改post_max_size

我知道這是前一段時間被問過的,但答案仍然是相關的,而不是實際上在這個消息中。

原始海報注明:

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值也被認為是因為你的腳本因內存耗盡而失敗。

默認情況下,在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_filesizememory_limit應該大於post_max_size

你有沒有覆蓋php.ini中的默認最大大小?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM