我有一個網站託管在PC上,我無權訪問。我有一個上傳表單,允許用戶上傳大小爲30MB的MP3文件。我的服務器端腳本是在PHP中完成的。更改上傳文件的最大大小
每當我嘗試上傳文件時,我收到一個錯誤,聲稱文件超出了允許的最大大小,所以我需要增加大小。我在網絡上的研究建議更改我無法訪問的.htaccess
文件,這樣將無法工作。其他人建議我應該添加一個自定義的php.ini
文件到我的根沒有工作。還有其他建議嗎?
我有一個網站託管在PC上,我無權訪問。我有一個上傳表單,允許用戶上傳大小爲30MB的MP3文件。我的服務器端腳本是在PHP中完成的。更改上傳文件的最大大小
每當我嘗試上傳文件時,我收到一個錯誤,聲稱文件超出了允許的最大大小,所以我需要增加大小。我在網絡上的研究建議更改我無法訪問的.htaccess
文件,這樣將無法工作。其他人建議我應該添加一個自定義的php.ini
文件到我的根沒有工作。還有其他建議嗎?
你需要設置的upload_max_filesize
和post_max_size
值在php.ini:
; Maximum allowed size for uploaded files.
upload_max_filesize = 40M
; Must be greater than or equal to upload_max_filesize
post_max_size = 40M
修改php.ini文件(一個或多個)後,需要重新啓動HTTP服務器以使用新的配置。
如果你不能改變你的php.ini,那你的運氣不好。您不能在運行時更改這些值;如果上傳的文件大於php.ini中指定的值,執行到達ini_set
的呼叫時間將失敗。
您可以通過.htaccess
文件更改它。
.htaccess
文件存儲在與您的.php
文件相同的目錄中。他們修改該文件夾和所有子文件夾的配置。您只需通過在您選擇的目錄中創建一個.htaccess
文件來使用它們(或者修改它,如果存在的話)。
以下內容應使您能夠提高上傳限制(如果服務器提供商允許通過.htaccess
更改PHP配置)。
它似乎並不總是工作。在我的開發機器上,在.htaccess中設置適當的值完成了這項工作。但是,在共享主機上,此設置不起作用,但是錯誤消息顯示允許的最大上傳大小是我在.htaccess中設置的值。所以一個非常奇怪的情況發生。 – 2012-08-18 21:09:35
看起來像在.htaccess中添加這個功能只有在運行Apache時纔有效。試試吧,對我來說工作得很好。 – AngelGris 2014-08-22 15:49:26
您還可以使用ini_set function(僅適用於PHP版本低於5.3):
ini_set('post_max_size', '64M');
ini_set('upload_max_filesize', '64M');
像@acme說,在PHP 5.3及以上這個設置是PHP_INI_PERDIR指令,因此它們不能被設置使用ini_set。您可以改用user.ini。
在最近的PHP版本中,這些ini設置僅爲[PHP_INI_PERDIR](http://www.php.net/manual/en/ini.list.php),因此您無法在腳本中設置它們。有關更多詳細信息,請參見[這裏](http://www.php.net/manual/en/configuration.changes.modes.php)。 – acme 2013-03-06 08:40:24
我有同樣的問題,在過去..我固定它通過.htaccess
文件
當您通過.htaccess
就PHP CONFIGRATION變化,你應該把configrations在 IfModule
標籤,其他的內部服務器錯誤會出現。
這是一個例子,它工作正常,我:
<IfModule mod_php5.c>
php_value upload_max_filesize 40M
php_value post_max_size 40M
</IfModule>
這是php全球化志願服務青年,如果你想了解更多。 http://php.net/manual/en/configuration.changes.php
假設您擁有覆蓋功能。 – 2013-06-28 21:26:54
爲了支持PHP.7,添加相同的塊:
我有同樣的問題,我創建了一個.user.ini文件,並將其放在上載腳本所在的目錄中。比那個文件裏面我設置了這兩個值:
upload_max_filesize = 40M
post_max_size = 40M
它對我很好!
太棒了。與fastcgi一起使用也是如此。 [需要PHP5.3或更高版本。](http://php.net/manual/en/configuration.file.per-user.php) – Ciantic 2013-07-31 12:46:46
好吧,這工作在共享服務器上,當沒有別的工作。很棒的發現。 – 2013-08-20 00:03:05
這也解決了我的問題 - 謝謝! – 2017-12-31 10:51:37
要找到ini文件,第一次運行
php -i | grep -i "loaded configuration file"
然後打開文件,更改
upload_max_filesize = 2M
post_max_size = 2M
你想要的尺寸更換2M,比如100M。
我有一個博客帖子大約有一點信息也http://www.seanbehan.com/how-to-increase-or-change-the-file-upload-size-in-the-php-ini-file-for-wordpress
它顯示文件爲'/ etc/php5/cli/php.ini',但我的配置文件是'/ etc/php5/apache2/php.ini'。某種誤導。 – 2016-07-14 06:53:34
有2個php.ini文件...並且在回答中使用該命令時,它會顯示您正在使用哪一個!因此,您需要進行更改才能生效! – lewis4u 2017-07-06 15:26:19
這些解決方案的非對我的工作! (默認情況下已設置爲32M)。問題在大多數情況下爲max_allowed_packet
我正在使用localhost並使用MAMP
。
這裏是解決方案;
1.如果你沒有my.ini
添加
--max_allowed_packet=168435456
要
...\MAMP\bin\startMysql.sh
2.如果您的my.ini
在
[mysqld]
添加
max_allowed_packet=100M
DONE!
我創建一個名爲.user.ini
在PHP文件腳本所在的目錄文件(這意味着該目錄中的任何PHP腳本將獲取新的文件大小限制)
的.user.ini
內容是解決這個問題:
upload_max_filesize = 40M
post_max_size = 40M
這是我的解決方案。工作正常。如果你使用的是像codeignitor這樣的框架,「.user.ini」需要和index.php – 2015-12-03 03:51:33
一樣。謝謝。這對我很有用。這對共享主機非常理想,因爲您無法訪問php.ini。我只是補充說它自PHP 5.3起可用 – yacsha 2017-09-26 02:42:41
那麼,我想在這裏添加我的2美分。
我使用共享虛擬主機,我多次解決了這個問題,試圖自行解決它,但無濟於事。 最後,我設法通過檢查各種網絡資源並聯系我的託管服務提供商來解決它。我的問題是「如何在共享虛擬主機中更改php值memory_limit
?」,「我如何在共享虛擬主機中更改php值upload_max_filesize
?」,「我如何在共享虛擬主機中更改php值max_input_vars
?「,」我怎樣才能改變php值max_execution_time
在共享虛擬主機? ,出現了最後,我聯繫我的託管服務提供商,並且事實證明,我在我的PHP設置爲本地人,他們改變了它到PHP 5.6,這裏是他們的答案:
「你的PHP被設置爲‘天然’模式,該模式意味着你不能覆蓋 這些值。我已經改變了你只是「5.6」,所以你要善於 去。」
之後我連接通過FTP FileZilla中我的網站,也不要忘了請爲FTP服務來顯示隱藏文件和本地計算機這樣做,因爲.htaccess
文件隱藏在我的本地筆記本電腦和我的網站中,它在public_html文件夾中可用,我只是下載它並將以下代碼添加到文件末尾,然後將其上傳回服務器:
php_value memory_limit 256M
php_value post_max_size 256M
php_value upload_max_filesize 64M
php_value max_input_vars 1800
php_value max_execution_time 300
php_value max_input_time 300
一切都爲時間正常工作之中,如果有的話,你有一些問題解決,請寫在這裏,並警告我,讓我可以改變以上所示的代碼。順便說一下,我還上傳了一些顯示變化的圖片。
還有一件事我幾乎忘記提到ZipArchive在你的共享虛擬主機服務上的安裝,我管理了這個需求,只需通過我的cPanel進入php設置,點擊php選擇擴展,然後打勾zip部分,就是這樣。
謝謝。 PS:我接受良好的做法,如果你看到任何不好的做法,請讓我知道,我會嘗試改變它們。謝謝。
你需要檢查的三件事。
upload_max_filesize
,memory_limit
和post_max_size
完全在php.ini配置文件中。
所有這三個設置限制了PHP可以提交和處理的數據的最大大小。
通常post_max_size
和memory_limit
需要大於upload_max_filesize
。
所以三個變量總你需要檢查有絕對的把握。
我有同樣的問題。我嘗試了三種通常建議的方式:
如果沒有這解決了我的問題。我使用GoDaddy的,並遇到了一個建議的解決方案是:
瞧!現在你有一個不同的最大上傳文件大小:)
也許這應該是@ seanb123和@Fredrick高斯評論他的評論評論,但對我來說在Drupal 8.1我需要修改在這裏找到該文件:
/etc/php/7.0/apache2/php.ini
我可能改裝成其他四個的php.ini文件,包括一個我的系統稱爲「加載的配置文件」(PHP -i | grep的-i「加載配置文件」)和一個在信息發現.php頁面,但沒有一個幫助。我在2012年的一個網站上發現了正確的路徑,它表示路徑已被廢棄,甚至是BACK THEN。當然,對於PHP7來說,它與當時所說的有點不同:/etc/php5/apache2/php.ini,但概念是一樣的。
也許這會幫助一些像我這樣的無助schmuck。
這就是說,在我的情況下對OP的答案將是有人在框上的管理員權限將不得不這樣做。
,幫助我的網站:我注意到,現場機智共同主辦不允許在php.ini文件中更改設置Import file size limit in PHPMyAdmin
多次:http://www.evilbox.ro/linux/remove-ispconfig-maximum-upload-size-of-2m-for-wordpress/
這也解決在這裏。一個也根本無法打包.htaaccess文件。在這種情況下可以嘗試下面的事情
ini_set('upload_max_filesize', '10M');
ini_set('post_max_size', '10M');
ini_set('max_input_time', 300);
ini_set('max_execution_time', 300);
你也許知道缺省路由的php.ini文件存儲? – 2010-02-02 14:07:48
在Linux上,它通常位於/ etc/php /或其他行中。如果您在共享服務器上,除非您的託管服務提供商足夠慷慨地提供每個用戶的php.ini文件,否則您運氣不佳。 – 2010-02-02 14:10:42
如果您在Windows下使用WAMP,您可以通過單擊WAMP圖標> PHP - > php.ini進行編輯。在Debian中,我的配置文件位於/ etc/php5/apache2中。 – meagar 2010-02-02 14:15:37