❶ php 上傳 大小 配置 我配置了好了這些選項,還是不能上傳大文件
1. 一般的文件上傳,除非文件很小.就像一個5M的文件,很可能要超過一分鍾才能上傳完.
但在php中,默認的該頁最久執行時間為 30 秒.就是說超過30秒,該腳本就停止執行.
這就導致出現 無法打開網頁的情況.這時我們可以修改 max_execution_time
在php.ini里查找
max_execution_time
默認是30秒.改為
max_execution_time = 0
0表示沒有限制
2. 修改 post_max_size 設定 POST 數據所允許的最大大小。此設定也影響到文件上傳。
php默認的post_max_size 為2M.如果 POST 數據尺寸大於 post_max_size $_POST 和 $_FILES superglobals 便會為空.
查找 post_max_size .改為
post_max_size = 150M
3. 很多人都會改了第二步.但上傳文件時最大仍然為 8M.
為什麼呢.我們還要改一個參數upload_max_filesize 表示所上傳的文件的最大大小。
查找upload_max_filesize,默認為8M改為
upload_max_filesize = 100M
另外要說明的是,post_max_size 大於 upload_max_filesize 為佳.
❷ 如何修改PHP上傳文件大小限制
1. 在php.ini中,做如下修改:
file_uploads = on
upload_tmp_dir = /home/upload
upload_max_filesize = 4000M
post_max_size = 4000M
一般地,設置好上述四個參數後,上傳<=8M的文件是不成問題,在網路正常的情況下。
但如果要上傳>8M的大體積文件,只設置上述四項還一定能行的通。除非你的網路真有100M/S的上傳高速,否則你還得關心關心下面的參數:
max_execution_time = 600
max_input_time = 600
memory_limit = 128M
2. 在要確認上傳的 <form> 里加入以下行:
<input type="hidden" name="MAX_FILE_SIZE" value="4000000000">
3. $_FILES["userfile"]["error"]返回值說明:
$_FILES['teacher_pic']['error'] = 1 文件大小超過了PHP.ini中的文件限制
$_FILES['teacher_pic']['error'] = 2 文件大小超過了瀏覽器限制
$_FILES['teacher_pic']['error'] = 3 文件部分被上傳
$_FILES['teacher_pic']['error'] = 4 沒有找到要上傳的文件
$_FILES['teacher_pic']['error'] = 5 伺服器臨時文件夾丟失
$_FILES['teacher_pic']['error'] = 6 文件寫入到臨時文件夾出錯
$_FILES['teacher_pic']['error'] = -1 末充許的類型
$_FILES['teacher_pic']['error'] = -2 文件過大,上傳文件不能超過{$this->maxSize}個位元組
$_FILES['teacher_pic']['error'] = -3 上傳失敗
$_FILES['teacher_pic']['error'] = -4 建立存放上傳文件目錄失敗,請重新指定上傳目錄
$_FILES['teacher_pic']['error'] = -5 必須指定上傳文件的路徑
❸ 求PHP上傳大文件的三種解決方案
第一種是使用第三方的存儲空間,這種比較方便,也不需要你做什麼,直接請求介面就好啦。
第二種可以使用ftp方式進行大文件上傳,支持斷點續傳。
第三種是用php調用服務端程序來上傳,比如調用python等等開發的上傳功能
❹ 如何通過配置php文件限制上傳文件的大小
在網站開發的過程中,為了確保能夠充分利用伺服器的空間,在開發上傳功能時,必須對上傳文件的大小進行控制。那麼我們如何進行對上傳文件的大小進行控制呢?
控制文件的大小可以從兩個方面入手:
第一個是在PHP的配置文件php.ini中對上傳文件進行控制,如果上傳文件超過它指定的范圍,那麼執行上傳就會識別。
第二個是在PHP配置文件允許的范圍內,在程序中對上傳文件的大小進行控制!
一:通過配置文件控制上傳文件
PHP中通過php.ini文件對上傳文件進行控制,包括是否支持上傳,上傳文件的臨時文件目錄,上傳文件的大小,指令執行時間,指令分配的內存空間。
在php.ini中,定義 File Uploads項,完成對上傳相關選項的設置。上傳相關選項的含義如下:
file_uploads:如果值是 no,說明伺服器支持上傳文件,如果為off ,那麼則不支持。一般默認是支持的,這個不用修改!
upload_tmp_dri:上傳文件臨時目錄。文件被成功上傳之前,文件首先存放到伺服器端的臨時目錄中。多數使用系統默認目錄,但是也可以自行設置!
upload_max_filesize:伺服器允許上傳文件的最大值,以MB為單位,系統默認為2MB,如果網站需要上傳超過2MB的數據,那麼就要修改這個值!
上述是php.ini中 File_Uploads項中與上述相關參數設置說明,除了File_Uploads項中的內容外,在php.ini中還有其他幾個選項會影響到文件的上傳~
max_execution_time:PHP中一個指令所能執行的最大時間,單位為秒。該選項在上傳超大文件時必須要修改,否則即使上傳文件在伺服器允許的范圍內,但是若超過了指令所能執行的最大時間,仍然無法實現上傳~
memory_limit:PHP中一個指令所分配的內存空間,單位是 MB 。它的大小同樣會影響得到超大文件的上傳!
二:在程序中控制上傳文件
在客戶端控制上傳文件應用的是 form 表單中的 enctype 和 method屬性以及隱藏域 MAX_FILE_SIZE。
enctype = 「multipart/form-data」:指定表單編碼數據方式。
method = 「post」:指定數據的傳輸方式。
<input type = "hidden" name="MAX_FILE_SIZE" value=「10000」/>:通過隱藏域控制上傳文件的大小(單位為位元組),該值不能超過php.ini配置文件中 upload_max_filesize 選項設置的值,它不能喝完全控制上傳文件的大小。只是可以避免一些不必要的麻煩。
技巧:
在應用隱藏域<input type = "hidden" name="MAX_FILE_SIZE" value=「10000」/>控制文件上傳大小時,必須將其放置在文件域之前,否則是不能發揮作用的!
❺ 如何設置PHP上傳文件大小限制
修改一下php.ini文件。
需要伺服器許可權才可修改!!
需要在PHP.ini里設置以下幾項:
1. post_max_size =10M
表單提交最大數據為10M.此項不是限制上傳單個文件的大小,而是針對整個表單的提交數據進行限制的.
限制范圍包括表單提交的所有內容.例如:發表貼子時,貼子標題,內容,附件等...
2.file_uploads = On
是否允許上傳文件,如果為OFF您將不能上傳文件.
3.upload_tmp_dir = "D:/APM/PHP/uploadtemp/"
上傳文件時系統使用的緩存目錄.如果此目錄所在磁碟空間不足的話您將不能上傳文件.
4.upload_max_filesize =2M
最大上傳文件大小,此項針對上傳文件時單個文件的大小.
與post_max_size之間的關系:
在論壇發表貼子時,您post_max_size 設為10M,而此項設成了2M,那麼您只能上傳最大為2M的附件,且可以同時上傳5個.
注意:很多人遇到修改php.ini後重應WEB服務後仍然不能生效.這種情況應該先確認一下所改的php.ini是不是當前PHP所使用的.
您可以在WEB目錄下建立一個php文件,內容很簡單就一句話
代碼:
<?php
phpinfo();
?>
瀏覽器中查看此文件, Configuration File (php.ini) Path 此項對應的就是您的PHP當前正在使用的php.ini文件了.
❻ PHP 上傳大於2M的文件限制
//感謝!作者:心若水寒
1. 一般的文件上傳,除非文件很小.就像一個5M的文件,很可能要超過一分鍾才能上傳完.
但在php中,默認的該頁最久執行時間為 30 秒.就是說超過30秒,該腳本就停止執行.
這就導致出現 無法打開網頁的情況.這時我們可以修改 max_execution_time
在php.ini里查找
max_execution_time
默認是30秒.改為
max_execution_time = 0
0表示沒有限制
另一種方法是可以在php程序中加入
set_time_limit();
來設定頁面最久執行時間.
set_time_limit(0);//0表示沒有限制
2. 修改 post_max_size 設定 POST 數據所允許的最大大小。此設定也影響到文件上傳。
php默認的post_max_size 為2M.如果 POST 數據尺寸大於 post_max_size $_POST 和 $_FILES superglobals 便會為空.
查找 post_max_size .改為
post_max_size = 150M
3. 很多人都會改了第二步.但上傳文件時最大仍然為 8M.
為什麼呢.我們還要改一個參數upload_max_filesize 表示所上傳的文件的最大大小。
查找upload_max_filesize,默認為8M改為
upload_max_filesize = 100M
另外要說明的是,post_max_size 大於 upload_max_filesize 為佳.
❼ php 文件上傳大小限制的問題
有時候需要用php上傳比較大的文件,默認是不可以的,必須按照下面的方法修改下。
配置php.ini文件 (以上傳500M以下大小的文件為例)
查找以下選項並修改->
file_uploads = On ;打開文件上傳選項
upload_max_filesize = 500M ;上傳文件上限
果要上傳比較大的文件,僅僅以上兩條還不夠,必須把伺服器緩存上限調大,把腳本最大執行時間變長
post_max_size=500M;//post上限
max_execution_time=1800;//,inseconds腳本最大執行時間
max_input_time=1800;//
memory_limit=128M;//(128MB)內存上限
❽ 如何讓PHP上傳超大文件
1.在php.ini修改上傳文件的大小
打開php.ini,首先找到(前4個夠用了)
file_uploads = on ;是否允許通過HTTP上傳文件的開關。默認為ON即是開
upload_tmp_dir ;文件上傳至伺服器上存儲臨時文件的地方,如果沒指定就會用系統默認的臨時文件夾
upload_max_filesize = 8m ;望文生意,即允許上傳文件大小的最大值。默認為2M
post_max_size = 8m ;指通過表單POST給PHP的所能接收的最大值,包括表單里的所有值。默認為8M
一般地,設置好上述四個參數後,上傳<=8M的文件是不成問題,在網路正常的情況下。
但如果要上傳>8M的大體積文件,只設置上述四項還一定能行的通。
進一步配置以下的參數
max_execution_time = 600 ;每個PHP頁面運行的最大時間值(秒),默認30秒
max_input_time = 600 ;每個PHP頁面接收數據所需的最大時間,默認60秒
memory_limit = 8m ;每個PHP頁面所吃掉的最大內存,默認8M
把上述參數修改後,在網路所允許的正常情況下,就可以上傳大體積文件了
max_execution_time = 600
max_input_time = 600
memory_limit = 32m
file_uploads = on
upload_tmp_dir = /tmp
upload_max_filesize = 32m
post_max_size = 32m
2如果還是解決不了.
nginx修改上傳文件大小限制
在 /etc/nginx/conf.d/下 找到你的配置文件 在location中加上這樣一段代碼
location / {
root html;
index index.html index.htm;
client_max_body_size 5000m;
}
切記!!!修改完配置文件要重啟!重啟!重啟!
❾ PHP 大文件上傳解決方案(500M以上)
針對這種問題,我想從如下幾方面著手:
1.首先還是查看環境是否支持超大容量上傳的支持,500M以上的文件通常為視頻文件;
2.即然他要上傳500M以上的文件,估計伺服器性能必定非同凡想,所以暫可不考慮伺服器硬體配置問題,但一定要考慮到網速問題,建議1000M以上出入速率,如少於這個數,你可以放棄這個方案了;
3.前面硬體都過關了,但程序也要加強了,一下上傳500M是哪種語言都不能實現的,唯一解決方案,文件切割,如迅雷下載原理一樣(採用續點上傳),分成若干小塊,然後全部上傳完畢以後,再進行文件合成。
4.至於PHP的文件切割,切割後上傳,以及文件合並,此類代碼網上有許多,樓主可查詢並選擇適合你的代碼,實現你的功能!
以上思路希望能幫到你!
❿ php無法上傳文件
我也遇到過,我是APACHE+PHP的環境。
造成這個情況的原因可能比較多,我也只說的出來幾個,你試一下
1.PHP程序的問題,如果可能的話,看一下源代碼的上傳模塊。
2.上傳文件的文件名必須是中文,或者必須是英文or數字.
3.如果有後台的話,則有可能是後台的功能配置,特別注意一下上傳文件的大小與格式。
如果還是不能上傳,我就懷疑是上傳模塊的問題了,你可以給你的Php站加一個上傳模塊,或者從後台上傳。
而且有的模塊是只能從後台上傳,也就是只有管理員可以上傳。