2012-01-10 69 views
7

我有一個允許用戶上傳圖片的頁面。覆蓋服務器上的php.ini

當用戶嘗試上傳更大的圖像時,它返回500錯誤。

下面的代碼...

<?php echo ini_get("upload_max_filesize"); 
echo ini_get("post_max_size"); 
echo ini_get("max_input_time"); 
echo ini_get("max_execution_time"); 
?> 

...的回報:

100M 
100M 
60 
3600 

我從這個猜測,它的最大輸入時間這是造成問題,因爲我」已經用100mb以下的文件進行測試,但花費超過60秒的時間來上傳。

我沒有訪問我的主機到php.ini文件,所以我可以覆蓋這些設置?我試過添加一個htaccess文件,但我不確定我是否把它放在正確的位置。

回答

15

把.htaccess文件在您的網站(如你的php腳本)的根文件夾,並添加以下值:

php_value upload_max_filesize 100M 
php_value post_max_size 100M 
php_value max_execution_time 200 
php_value max_input_time 200 

當然,你可以把其他的大小和時間的限制。這應該工作。

+0

好的,所以我做到了這一點,並設置瘋狂的高價值,以確保仍然沒有喜悅。它可能是別的嗎? – Tom 2012-01-10 23:56:18

+0

如果您使用的是共享主機(並且很可能是因爲您無法更改您的php.ini),則可能發生的情況是您的主機提供商不允許使用.htaccess重寫php.ini。在這種情況下,只要問他們該怎麼做。 – 2012-01-11 00:24:01

+0

另外,在你的php文件中,你可以放入:ini_set('upload_max_filesize','20M');等等......只是爲了確保你沒有把你的.htaccess放在錯誤的地方。 – 2012-01-11 00:28:23

1

設置php ini指令取決於服務提供者配置的性質。運行phpinfo()腳本查看您的配置。如果您的提供者在用戶UID環境中使用suPHP啓動PHP,那麼它可能會在腳本的目錄中查找php.ini。 This是如何適用於我的託管服務提供商。

相關問題