2011-11-26 65 views
1

我已經上傳兩個PDF文件到服務器在PHP中。但他們正確上傳,但上傳大文件時,我得到一個錯誤。 Iam使用mysql服務器如何上傳大文件(100 MB)在PHP

如何在php中上傳大文件(100 MB)?

+0

你有什麼錯誤,你使用任何類型的上傳? – coder

+0

您可能需要在php.ini中更改'max_upload_size'和'post_max_size'。搜索堆棧溢出了許多相關的答案。 –

+0

可能重複[在PHP中上傳最大大小?](http://stackoverflow.com/questions/3263480/upload-max-size-in-php) –

回答

6

從php.ini中的默認設置:

; Maximum allowed size for uploaded files. 
; http://php.net/upload-max-filesize 
upload_max_filesize = 2M 

改變,如果你想要更大上傳此值。

我不完全確定,但我不認爲ini_set會在這種情況下工作。您將需要直接訪問爲php.ini

2

要添加到湯姆·範德Woerdt的回答有關的upload_max_filesize:

機會是,默認情況下執行的限制也將有改變,或當你在腳本會超時上傳一個大文件。

還應考慮:

post_max_size max_input_time max_execution_time

3

我不會改變的upload_max_filesize。使用HTTP POST上傳大文件不會給您任何有關上傳剩餘時間的任何反饋意見等。對於大多數瀏覽器而言,頁面只是在文件上傳時掛在那裏。如果客戶端上傳文件需要很長時間,您還會遇到腳本超時問題。取決於您是否以後使用PHP處理文件,您也可能遇到內存耗盡的問題。

我們使用PLUpload http://www.plupload.com將文件分塊成小塊並上傳每個塊。在服務器上,PHP腳本將獲取每個POST文件塊並將其附加到現有塊以重建另一側的大文件。我們已經測試了幾百MB的文件。這樣做效果更好,對用戶來說更好用戶體驗。

利奧

1

的建議設置max_upload_size和post_max_size設置是正確的,但你可能還是會遇到一些問題的安裝。設置這些值時要記住的一件事是post_max_size至少是max_upload_size值的兩倍。換句話說,如果將max_upload_size設置爲100mb,那麼post_max_size必須爲200mb,否則設置將被拒絕,引擎將使用2mb和8mb的默認設置。另外,您需要確保memory_limit至少是max_upload_size的大小。如果你打開帖子並上傳大小,但你沒有分配足夠的內存,那麼你仍然會遇到問題。

2

您可能需要更改php.ini文件中的下列選項:

  1. 的upload_max_filesize(在php.ini或。htaccess的唯一,將不使用的ini_set工作())

  2. 的post_max_size(同上)

  3. memory_limit的(同上)

下面是每個選項的說明:

有3個設置PHP使用,限制你的上傳能力:

post_max_size

這是表單上發送的所有文件的最大合併大小。如果您的表單上有2個文件字段,則2個文件的總文件大小不得超過post_max_size值。

的upload_max_filesize

這是每個單獨的文件的大小限制。

memory_limit的

PHP腳本有一個內存限制,一般來講這樣可以防止一些上傳的工作。限制應該設置在一個合理的水平,當然你不需要20mb的簡單'hello world'腳本。如果您發現上傳仍然無效,請嘗試緩慢增加此值。