Apache PHP大檔案上傳問題

2022-06-06 08:39:05 字數 2529 閱讀 5525

下面分別是各種原因以及解決辦法:

第1種情況:檔案上傳時存放檔案的臨時目錄必須是開啟的並且是 php 程序所有者使用者可寫的目錄。如果未指定則 php 使用系統預設值。

php.ini檔案中upload_tmp_dir用來說明php上傳的檔案放置的臨時目錄,要想上傳檔案,得保證伺服器沒有關閉臨時檔案並對該資料夾有寫入的許可權。

第2種情況:max_execution_time 的值必須足夠大。變數

max_execution_time

設定了在強制終止指令碼前php等待指令碼執行完畢的時間,此時間以秒計算。當指令碼進入了乙個無限迴圈狀態時此變數非常有用。然而,當存在乙個需要很長時間完成的合法活動時(例如上傳大型檔案),這項功能也會導致操作失敗。在這樣的情況下必須考慮將此變數值增大,以避免php在指令碼正在執行某些重要過程的時候將指令碼關閉,例如設定為

90 秒。

max_execution_time = 90

注意在php函式中還有個set_time_limit

函式,和以上這個設定的作用是相同的,這兩者的區別就是 以上是在 php.ini 檔案中設定的,而set_time_limit

是寫在php檔案中的。所以也可以通過在頁面中用 set_time_limit

設定程式的最長執行時間,比如無限制即:set_time_limit(0);

第3種情況:file_uploads = on 預設值為on,意思是允許通過 http 進行檔案上傳,此選項不能設定為off。

第4種情況:upload_max_filesize = 2m 設定檔案上傳的大小的最大值,php.ini配置檔案中的預設檔案上傳大小為2m,php初學者容易犯的乙個錯誤是在編寫檔案上傳功能時通過設定上傳檔案最大大小的表單區域,即允許上傳檔案的最大值,max_file_size(隱藏值域)的值來規定上傳檔案的大小,其實一般別人可以繞過這個值,所以安全起見,最好是在

php.ini 配置檔案中配置 upload_max_filesize 選項,設定檔案上傳的大小。預設 upload_max_filesize

= 2m,即檔案上傳的大小為2m,如果你想上傳超過8m的檔案,比如20m,你必須設定upload_max_filesize = 20m。

第5種情況:post_max_size 這個值也必須足夠大。這個變數也是乙個同表單提交相關的變數,它限制的是客戶端通過post方法進行一次表單提交時php程式所能夠接收的最大資料量。一般情況下,將此值的值設定的比

upload_max_filesize 略大即可,比如要上傳20mb的檔案,此值可以設定為 21mb。

第6種情況:max_input_time 此變數可以以秒為單位對通過post、get以及put方式接收資料時間進行限制。如果應用程式所執行環境處在網路比較慢的情況下,則需要增加此值以增大接收資料所需要的時間,比如將此值設定為 90秒。

max_input_time = 90

第7種情況:memory_limit 也必須足夠大,為了避免正在執行的指令碼大量使用系統可用記憶體,php允許定義記憶體使用限額。通過memory_limit變數來指定單個指令碼程式可以使用的最大記憶體容量。變數memory_limit的值應當適當大於post_max_size的值。

第8種情況:另外如果你的主機是 nginx 作業系統的話,如果以上操作都不行的話,記得在nginx 的配置檔案裡面加上 client_max_body_size 20m;這樣一句,即表示最大允許上傳20mb,具體根據自己的情況來。我的nginx 配置檔案的位置在 /usr/local/nginx/conf/nginx.conf。

上面就是我查到的,因為我的是windows架構的,所以排除最後一種前面七項我也找了,嘗試了,但是發現然並卵,我愁死,甚至都換了乙個php版本。

但是,但是,但是,就在這裡換好php和一些配置的環境的時候,涉及到要重啟apache伺服器,我就醒悟了,因為php.ini是涉及到apache伺服器的乙個配置檔案,是不是要重啟apache?,,,懷著一顆忐忑不安的心,重啟了伺服器,改回了***的檔案型別,我去年買了個表啊,就是因為apache伺服器沒重啟導致的php.ini檔案沒有生效的,唉,所以啊,以後搭建伺服器的時候涉及到配置檔案的,基本上都要重啟。千萬別像我一樣先換個服務環境。誒。

apache php上傳大檔案

開啟php.ini,ctrl f 找到下面的項並修改之。下面以上傳100m為例。file uploads on 是否允許通過http上傳檔案的開關。預設為on即是開 upload tmp dir 檔案上傳至伺服器上儲存臨時檔案的地方,如果沒指定就會用系統預設的臨時資料夾 upload max fil...

大檔案上傳問題

分類 c 語言 舉報c 這樣就可以解決了大檔案的上傳問題了。第二部分 下面我們來介紹如何以檔案形式將客戶端的乙個檔案上傳到伺服器並返回上傳檔案的一些基本資訊。首先我們定義乙個類,用來儲存上傳的檔案的資訊 返回時需要 public class fileupload 上傳檔名稱 public strin...

PHP大檔案上傳問題

下面簡單介紹下php上傳檔案涉及到的引數 0 檔案上傳時存放檔案的臨時目錄。必須是 php 程序所有者使用者可寫的目錄。如果未指定則 php 使用系統預設值 php.ini檔案中upload tmp dir用來說明php上傳的檔案放置的臨時目錄。要想上傳檔案,得保證伺服器沒有關閉臨時檔案和有對資料夾...