標籤

 Subscribe in a reader Palacan!部落格聯播

Add to Google Reader or Homepage Subscribe in NewsGator Online Subscribe in Bloglines Add to Technorati Favorites

歡迎交換貼紙跟連結(交換我的請按這)
page counter


Lin's Blog Lin's blog 歡迎轉貼 Liang's Blog NABEKO Blog POCATO'S BLOG 無法顯示網頁 TW-台灣旅遊部落圈 True Colours Blog Sunny Pie 莫維平
紅色★妮可 Jerry&Debbie  小奇moody分享



星期三, 三月 19, 2008

PHP上傳 較大的文件

昨天是老師Website的審查前哨站,
然後這個時候當然學長就會很緊張的說,
學弟趕快把資料放到網站上面(就只會在這個時候說),
真是身為責任重大的學弟 ┐(-.-)┌

PHP在上傳體積較大的文件時 需要注意的地方有
1.form表單上面的hidden field 中的MAX_FILE_SIZE
2.commit之後於程式後端判斷$file_size
3.再者最重要的是php.ini的設置

第一個表單部份:
其實就是設置欲上傳文件的最大容量。
檢查了一下老師網站可能上傳的最大文件容量為490MB,
所以乾脆就設定為最大上傳大小為500MB

第二的部份:
後端判斷的部份,必須跟前述表單呼應,
當然也設定判斷為if($file_size > 500000000) exit();

第三個部份比較煩雜一點:
要到php.ini中去更改設定,
appserv中的php.ini位置在C:\WINDOWS底下,
如果是用Xampp的話php.ini就會在C:\xampp\apache\bin底下,

(其中C:\AppServ\php資料夾內的php.ini-dist跟php.ini-recommeded這兩個檔案,並非所謂的php.ini,其實這是剛開始安裝php用的兩個基本設定模組,如果把apache跟php分開安裝就知道,要把php.ini-dist複製一份到windows目錄下,並更名為php.ini,就是這個道理,這屬於基本的設定。)
(至於php.ini-dist跟php.ini-recommended差別則是,雖然兩個都是設定檔,但是這邊很貼心的為了高安全性做了考量,如果網站層級需要高安全性,那就把php.ini-recommended複製到windows目錄下,並更名為php.ini)


介紹的部份到一段落,接下來談到php上傳較大的文件,所需要的設定。
首先是

(a)File Uploads
裡面影響到上傳的部份參數為:
file_uploads = on ;
是否允許透過HTTP上傳文件。默認為ON。(表示允許)
upload_tmp_dir ;
文件上傳時暫存的地方,如果沒指定就會用系統默認的臨時文件夾
upload_max_filesize = 2m ;
即為允許上傳文件的最大值。默認為2M。

(b)Data Handling
post_max_size = 8m ;
指透過表單(form)POST給伺服器所能接收的最大值,包括表單裡的所有值。默認為8M。

一般來說,設定為上述的四個參數就可以上傳大體積的文件,但是仍然要考慮到網路傳輸的速度。 所以仍然要對網頁傳值的時間做一些基本的考量。

(c)Resource Limits
max_execution_time = 30 ;
每個PHP頁面運行的最大時間值(秒),默認值30秒。
max_input_time = 60 ;
每個PHP頁面接收數據所需的最大時間,默認值60秒。
memory_limit = 8m ;
每個PHP頁面所吃掉的最大記憶體量,默認值8M

如果是大體積文件,可以將參數改成600秒,記憶體量改為自己欲上傳最大文件量。

2 意見:

Fenridal 提到...
網誌管理員已經移除這則留言。
歪歪到處跑 提到...

上述就是有病毒的網站,請不要點選。
Above is an virus website, please don't click!!!
(我有發佈到Google回報了,希望Google處理的好)