2009-07-13 40 views
67

我使用的是PHP 5.3.0,遇到了可能是bug的情況(在這種情況下,我會報告它),或者可能是我 - 所以我要求確認。在PHP上更改upload_max_filesize

運行此代碼:

<?php 
ini_set('upload_max_filesize', '10M'); 
echo ini_get('upload_max_filesize'), ", " , ini_get('post_max_size') 

我結束了:

2M, 8M 

儘管這是我的php.ini中設置這些更高:

upload_max_filesize = 10M 
post_max_size = 10M 

(存在的只有一次)

因爲t他設置的值以及它在php.ini中設置後發生錯誤我傾向於認爲這是一個錯誤。任何人都可以確認或指出我要出錯的地方嗎?

更新:看起來像重新啓動Apache解決了這個問題 - 我一直認爲它不需要重新啓動,如果你改變了php.ini。

+7

「我一直以爲它並不需要重新啓動,如果你改變了php.ini。「 PHP CLI立即獲取更改,因爲它會在每次調用時分析php.ini。 mod_php解析php.ini一次 - 當apache啓動時。 – 2009-07-14 02:32:21

+0

我最近有同樣的問題。如果不重新啓動Apache,upload_max_filesize不會生效。我在PHP 5.2.9上。重啓後,一切正常。 – Haluk 2010-02-25 08:37:23

+0

爲了避免完整的Apache重啓,只需使用 「sudo service apache2 reload」 – user1048839 2015-06-04 20:25:11

回答

53

您不能使用shorthand notation設置php.ini之外的配置值。當我面對一個不好的值時,我認爲它會回落到2MB的編譯默認值。

另一方面,我不認爲upload_max_filesize可以使用ini_set()設置。 "official" list指出它是PHP_INI_PERDIR

56

您使用的是共享的託管服務商嗎?它可以是主設置,覆蓋任何你想改變的東西。你有沒有嘗試將這些添加到你的.htaccess中?

php_value upload_max_filesize 10M 
php_value post_max_size 10M 
+1

不,這是我自己的Apache/PHP實例在我的機器上(這是Windows,如果它是相關的)。我會嘗試將這些添加到Apache配置中。 – Ross 2009-07-13 22:28:28

+5

更新:這確實會影響它(將它們更改爲10),因此此方法有效。我仍然很困惑,爲什麼它不能在php.ini中使用或使用ini_set。 – Ross 2009-07-13 22:30:07

2

這也可以與apache的配置控制。檢查的httpd.conf和/或針對的.htaccess類似以下內容:

php_value upload_max_filesize 10M 
-1

如果您在飛行中使用ini_set,那麼您會在這裏找到http://php.net/manual/en/ini.core.php的信息,例如, upload_max_filesize和post_max_size不能隨時更改(PHP_INI_PERDIR)。

只有php.ini,.htaccess或vhost配置更改似乎會更改這些變量。

-1

如果您正在本地服務器(如wamp或xampp)中運行,請確保它使用您認爲是的php.ini。這些服務器通常默認爲不在您的html文檔文件夾中的php.ini。

-11

您也可以使用PHP文件這樣

<?php ini_set('upload_max_filesize', '200M'); ?> 
6

我得到這個使用.user.ini文件在同一目錄作爲我的index.php腳本加載我的應用程序工作。以下是內容:

upload_max_filesize = "20M" 
post_max_size = "25M" 

這是Heroku的推薦解決方案。

30

因爲我剛剛在共享主機上遇到了這個問題,無法將值添加到我的.htaccess文件中,我想我會分享我的解決方案。

我做了一個ini文件,其中的值。就這麼簡單:

建立一個叫做 「.user.ini」 文件,並添加你的價值觀

upload_max_filesize = 150M 
post_max_size = 150M 

繁榮,解決問題。

相關問題