2009-04-07 130 views
6

我有一個15個字段的PHP網頁。用戶將使用它來上傳圖像。我通過上傳15張JPG圖片來測試,每張圖片大約2M,沒有任何問題。在我啓動的那一天,我將把這個網頁轉移到另一個Linux共享主機環境(仍然不確定哪一個)。是否有一些虛擬主機環境限制了一個http請求中總上傳的大小?PHP - 最大總上傳大小?

回答

19

是的。有(據我記得),這會影響上傳大小限制3個左右的配置設置:

  • upload_max_filesize,這臺對上傳的文件
  • post_max_size大小,這限制了總的上限發佈的數據的大小,包括文件數據
  • max_input_time,這限制的時間長度的腳本被允許處理輸入數據,包括貼值

upload_max_filesize是每個I限制個人檔案;但是,max_post_size是整個請求的上限,其中包含所有上傳的文件。

不同的託管環境將設置不同的這些值,這可能會影響您部署後的能力。

0

這將是不尋常的,但當然,請檢查您選擇的任何託管公司。如果有限制,肯定會高於30 MB。

+0

我的Linux機器上的默認限制爲2 MB。 – Benson 2009-04-07 22:00:51

+0

嗯,但是當你購買主機時,他們會增加這個功能,如果他們沒有,你可以讓他們去做。 – 2009-04-07 23:03:24

+0

蹩腳的寄宿人不。 – ThiefMaster 2013-10-11 21:41:30

0

php.ini指令「post_max_size」應限制您可以在單個POST中發送多少數據。如果您在一篇文章中發佈了15張圖片,我很確定這仍然被認爲是一個POST。所以在上線之前檢查這個值可能會很好。

4

這是一個在php.ini中的設置。您可以在php info的輸出中查找標記爲「upload_max_filesize」的字段。爲了得到一個PHP信息頁面,創建一個PHP文件與下面的代碼:

<?php phpinfo(); ?> 

This post在php.net爲您提供了示例代碼來獲得這些信息,以及頁面的其餘部分是PHP配置的寶庫選項。

4

有一堆的PHP設置限制上傳過程:

  • file_uploads
  • 的upload_max_filesize
  • max_input_time設置
  • memory_limit的
  • 的max_execution_time
  • 的post_max_size

我建議閱讀此頁:http://www.radinks.com/upload/config.php

雖然這是真的很多,這些不限制上傳大小,他們把帽子放在上傳過程 - 例如如果內存限制太低,那麼在上傳需要在內存中保留一段時間的大文件時會遇到問題。

6

上傳限制通過php ini設置。你可以嘗試讓他們像這樣:

$post_max_size = ini_get('post_max_size'); 
$upload_max_filesize = ini_get('upload_max_filesize'); 
-1

我見過的最好的解決方案here,到目前爲止,這是代碼:

/** 
* Returns the maximally uploadable file size in megabytes 
* 
* @return string 
*/ 
function getMaxUploadSize() 
{ 
    $max_upload = (int)(ini_get('upload_max_filesize')); 
    $max_post  = (int)(ini_get('post_max_size')); 
    $memory_limit = (int)(ini_get('memory_limit')); 
    return min($max_upload, $max_post, $memory_limit);  
} 
0

如果您正在使用的nginx然後確保你有以下:

server { 
... 
    client_max_body_size 100M; 
.... 
} 
0

這裏:

max_execution_time 
max_input_time 
memory_limit 
post_max_size 
upload_max_filesize 
max_file_uploads