㈠ 求PHP上傳大文件的三種解決方案
第一種是使用第三方的存儲空間,這種比較方便,也不需要你做什麼,直接請求介面就好啦。
第二種可以使用ftp方式進行大文件上傳,支持斷點續傳。
第三種是用php調用服務端程序來上傳,比如調用python等等開發的上傳功能
㈡ 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 超大文件上傳解決方案:分片斷點上傳(一)
大文件上傳主要需要解決2個難點問題。
一個是文件的分片,一個是文件的合成。
也就是客戶端分片上傳,伺服器端量分片的文件進行合成。
文件分片,前端瀏覽器提供了分片的js函數,我們只需要調用即可。
文件上傳需要解決斷點續傳的問題,就是伺服器端需要保留和記錄每次上傳的分片,這樣可以通過順序進行文件合並。
斷點續傳是通過記錄上傳的信息,已上傳的切片不需要重復上傳,當全部切片上傳成功,伺服器端進行切片合並。
㈣ php伺服器文件上傳大小被限制如何修改
打開php.ini,
首先找到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
㈤ 如何取消php最大上傳文件限制
一、修改php.ini文件。
1、查找post_max_size,指通過表單POST給PHP的所能接收的最大值,包括表單里的所有值,默認為8M,看你自己需要進行改變。
2、查找File Uploads,首先確認file_uploads = on ;是否允許通過HTTP上傳文件的開關,默認為ON即是開。 upload_tmp_dir ;
查找upload_max_filesize ;即允許上傳文件大小的最大值。默認為2M。
3、如果要上傳>8M的文件,那麼只設置上述四項還不定一定可以。最好對下面的參數也進行設置:
查找max_execution_time = 600 ;每個PHP頁面運行的最大時間值(秒),默認30秒。
max_input_time = 600 ;每個PHP頁面接收數據所需的最大時間,默認60秒 。
memory_limit = 8M ;每個PHP頁面所吃掉的最大內存,默認8M。
㈥ 如何讓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怎麼實現超大文件上傳
1.首先還是查看環境是否支持超大容量上傳的支持,500M以上的文件通常為視頻文件;
2.即然他要上傳500M以上的文件,估計伺服器性能必定非同凡想,所以暫可不考慮伺服器硬體配置問題,但一定要考慮到網速問題,建議1000M以上出入速率,如少於這個數,你可以放棄這個方案了;
3.前面硬體都過關了,但程序也要加強了,一下上傳500M是哪種語言都不能實現的,唯一解決方案,文件切割,如迅雷下載原理一樣(採用續點上傳),分成若干小塊,然後全部上傳完畢以後,再進行文件合成。
4.至於PHP的文件切割,切割後上傳,以及文件合並,此類代碼網上有許多,樓主可查詢並選擇適合你的代碼,實現你的功能!
㈧ 求php怎麼實現web端上傳超大文件
加大PHP上傳文件大小的限制,是通過修改PHP.INI文件來實現,但是這個支持是有限度的,因為WEB協議本為下載而生,超大文件的上傳是FTP的專利。
PHP用超級全局變數數組$_FILES來記錄文件上傳相關信息的。
1.file_uploads=on/off
是否允許通過http方式上傳文件
2.max_execution_time=30
允許腳本最大執行時間,超過這個時間就會報錯
3.memory_limit=50M
設置腳本可以分配的最大內存量,防止失控腳本佔用過多內存,此指令只有在編譯時設置了
--enable-memory-limit標志的情況下才生效
4.upload_max_filesize=20M
允許上傳文件的最大大小,此指令必須小於post_max_size
5.upload_tmp_dir
上傳文件臨時存放目錄
6.post_max_size=30M
允許post方式可以接受最大大小
$_FILES['myFile']['name'] 客戶端上次文件的原始名稱。
$_FILES['myFile']['type'] 文件的 MIME 類型,需要瀏覽器提供該信息的支持,例如"image/gif"。
$_FILES['myFile']['size'] 已上傳文件的大小,單位為位元組。
$_FILES['myFile']['tmp_name'] 文件被上傳後在服務端儲存的臨時文件名,一般是系統默認。可以在php.ini的upload_tmp_dir 指定,但 用 putenv() 函數設置是不起作用的。
$_FILES['myFile']['error'] 和該文件上傳相關的狀態碼。['error'] 是在 PHP 4.2.0 版本中增加的。下面是它的說明:(它們在PHP3.0以後成了常量)
UPLOAD_ERR_OK
值:0; 沒有錯誤發生,文件上傳成功。
UPLOAD_ERR_INI_SIZE
值:1; 上傳的文件超過了 php.ini 中 upload_max_filesize 選項限制的值。
UPLOAD_ERR_FORM_SIZE
值:2; 上傳文件的大小超過了 HTML 表單中 MAX_FILE_SIZE 選項指定的值。
UPLOAD_ERR_PARTIAL
值:3; 文件只有部分被上傳。
UPLOAD_ERR_NO_FILE
值:4; 沒有文件被上傳。
值:5; 上傳文件大小為0.
文件被上傳結束後,默認地被存儲在了臨時目錄中,這時您必須將它從臨時目錄中刪除或移動到其它地方,如果沒有,則會被刪除。
也就是不管是否上傳成功,腳本執行完後臨時目錄里的文件肯定會被刪除。
附:修改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 上傳不了大的文件
這樣的話應該就不是php.ini的問題了 還可能是apache的配置問題
不清楚你的運行環境,有個網友的解決方法如下(linux下):
etc/httpd/conf.d/文件夾下的access.conf文件,發現此文件夾下還有一個php.conf,趕忙打開,裡面是如下內容:
## PHP is an HTML-embedded scripting language which attempts to make it# easy for developers to write dynamically generated webpages.#LoadMole php4_mole moles/libphp4.soAddType application/x-httpd-php php .php3## Cause the PHP interpreter handle files with a .php extension.#<Files *.php> SetOutputFilter PHP SetInputFilter PHP LimitRequestBody 524288</Files>## Add index.php to the list of files that will be served as directory# indexes.#DirectoryIndex index.php
LimitRequestBody 524288中的524288正好跟512KB相等,將其更改為2097152,不能上傳超過500K附件的問題解決!
㈩ PHP上傳大文件,該如何處理
無法上傳大文件是因為php.ini配置有限制了,這樣限制了用戶默認最大為2MB了,超過了就不能上傳了,若要上傳大文件,就去更改一下配置文件,改的大一些就是了。