首先設置配置文件:
成都創(chuàng)新互聯(lián)公司-專業(yè)網站定制、快速模板網站建設、高性價比阜康網站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式阜康網站制作公司更省心,省錢,快速模板網站建設找我們,業(yè)務覆蓋阜康地區(qū)。費用合理售后完善,10余年實體公司更值得信賴。
upload_max_filesize :允許上傳文件大小的最大值,默認為2M。可以設置大點;
post_max_size :控制在采用POST方法進行一次表單提交中PHP所能夠接收的最大數(shù)據(jù)量。如果希望使用PHP文件上傳功能,則需要將此值改為比upload_max_filesize要大
分片上傳的原理就是通過切割上傳文件,然后在瀏覽器的頭部通過etag來進行劃分文件傳輸,服務器端接收到文件片段和分割起始符之后,進行拼接文件,最后合成一個大文件。
你可以自己通過php來獲取瀏覽器頭部傳輸標志來進行文件的拼接組裝,也可以通過現(xiàn)有的大文件傳輸類來上傳文件。
關鍵點
記住分割文件點,也就是分割文件的順序,拼接文件需要通過etag按照順序拼接,分片可以并發(fā)傳輸,這其實也是并發(fā)下載的原理。
在使用PhpMyAdmin的時候經常用到數(shù)據(jù)的導入和導出(Export/Import),但是在導入大數(shù)據(jù)的時候由于php上傳文件的限制和腳本響應時間的限制,導致phpMyAdmin無法導入大數(shù)據(jù)。很多時候都是由于文件過大,從本地瀏覽上傳導入,容易中斷失敗,有沒有更好的方法呢?
方法:
在phpMyAdmin的目錄下,找到根目錄的config.inc.php文件,
打開config.inc.php文件,查找$cfg['UploadDir'],這個參數(shù)就是設定導入文件存放的目錄,這里把值設定為:ImportSQLFile。
在phpMyAdmin目錄下,建立以ImportSQLFile命名的文件夾,
把我們需要導入的數(shù)據(jù)文件,放到ImportSQLFile文件夾下面,非常簡單,
登入phpMyAdmin,選擇需要導入的數(shù)據(jù),點擊導航條上面的“導入”按鈕,
選中“從網站服務器上傳文件夾ImportSQLFile/中選擇:”選項,并需要導入的數(shù)據(jù)文件,
最后點擊“執(zhí)行”,即可導入成功。
注意事項
如果在config.inc.php文件,沒有找到$cfg['UploadDir'],可以自己在文件中添加上去即可。
加大PHP上傳文件大小的限制,是通過修改PHP.INI文件來實現(xiàn),但是這個支持是有限度的,因為WEB協(xié)議本為下載而生,超大文件的上傳是FTP的專利。
PHP用超級全局變量數(shù)組$_FILES來記錄文件上傳相關信息的。
1.file_uploads=on/off
是否允許通過http方式上傳文件
2.max_execution_time=30
允許腳本最大執(zhí)行時間,超過這個時間就會報錯
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'] 已上傳文件的大小,單位為字節(jié)。
$_FILES['myFile']['tmp_name'] 文件被上傳后在服務端儲存的臨時文件名,一般是系統(tǒng)默認。可以在php.ini的upload_tmp_dir 指定,但 用 putenv() 函數(shù)設置是不起作用的。
$_FILES['myFile']['error'] 和該文件上傳相關的狀態(tài)碼。['error'] 是在 PHP 4.2.0 版本中增加的。下面是它的說明:(它們在PHP3.0以后成了常量)
UPLOAD_ERR_OK
值:0; 沒有錯誤發(fā)生,文件上傳成功。
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.
文件被上傳結束后,默認地被存儲在了臨時目錄中,這時您必須將它從臨時目錄中刪除或移動到其它地方,如果沒有,則會被刪除。
也就是不管是否上傳成功,腳本執(zhí)行完后臨時目錄里的文件肯定會被刪除。
附:修改PHP上傳文件大小限制的方法
1. 一般的文件上傳,除非文件很小.就像一個5M的文件,很可能要超過一分鐘才能上傳完.
但在php中,默認的該頁最久執(zhí)行時間為 30 秒.就是說超過30秒,該腳本就停止執(zhí)行.
這就導致出現(xiàn) 無法打開網頁的情況.這時我們可以修改 max_execution_time
在php.ini里查找
max_execution_time
默認是30秒.改為
max_execution_time = 0
0表示沒有限制
2. 修改 post_max_size 設定 POST 數(shù)據(jù)所允許的最大大小。此設定也影響到文件上傳。
php默認的post_max_size 為2M.如果 POST 數(shù)據(jù)尺寸大于 post_max_size $_POST 和 $_FILES superglobals 便會為空.
查找 post_max_size .改為
post_max_size = 150M
3. 很多人都會改了第二步.但上傳文件時最大仍然為 8M.
為什么呢.我們還要改一個參數(shù)upload_max_filesize 表示所上傳的文件的最大大小。
查找upload_max_filesize,默認為8M改為
upload_max_filesize = 100M
另外要說明的是,post_max_size 大于 upload_max_filesize 為佳.
用FTP上傳工具上傳即可。這里以8UFTP軟件為例:
1、下載安裝FTP軟件,輸入服務器IP地址,F(xiàn)TP的用戶名和密碼進行連接。
2、連接FTP后,找到要上傳的PHP項目文件,上傳到服務器即可。
1.首先還是查看環(huán)境是否支持超大容量上傳的支持,500M以上的文件通常為視頻文件;
2.即然他要上傳500M以上的文件,估計服務器性能必定非同凡想,所以暫可不考慮服務器硬件配置問題,但一定要考慮到網速問題,建議1000M以上出入速率,如少于這個數(shù),你可以放棄這個方案了;
3.前面硬件都過關了,但程序也要加強了,一下上傳500M是哪種語言都不能實現(xiàn)的,唯一解決方案,文件切割,如迅雷下載原理一樣(采用續(xù)點上傳),分成若干小塊,然后全部上傳完畢以后,再進行文件合成。
4.至于PHP的文件切割,切割后上傳,以及文件合并,此類代碼網上有許多,樓主可查詢并選擇適合你的代碼,實現(xiàn)你的功能!