文章詳情頁
PHP新手上路(八)
瀏覽:5日期:2024-03-01 08:02:38
7. 文件上傳 你可以利用PHP實現文件的上傳功能,注意客戶端的瀏覽器應該是Netscape3以上或者IE3以上的版本。同時,因為本程序與你的PHP配置文件(PHP3為php3.ini,PHP4為php.in)設置有關。在執行該程序之前請先檢查您的PHP配置文件有沒有做好如下的設置: 將;upload_tmp_dir該行的注釋符,即前面的分號“;”去掉,使該行在php.ini文檔中起作用。upload_tmp_dir是用來定義上傳文件存放的臨時路徑,在這里你還可以給其定義一個絕對路徑,例如:upload_tmp_dir = d:upload 當然,此時你的d:upload目錄必須有讀寫權限。 如果你在你的.php3程序里已經定義了上傳的路徑,此時上傳文件的路徑以.php3程序里定義的路徑為基準。在下例中,receiver.php3文件就指定了用于存放上傳文件的目錄是:d:upload。 upload_max_filesize 是用來限制PHP處理的上載文件大小的最大值,以字節計算,缺省值為2097152= 2*1024*1024字節(2兆),你可以通過修改該缺省值來定義最大的上載文件大小。;;修改后不要忘了重啟Apache,IIS或PWS服務哦。;; 同時在PHP中,文件上載還有幾點是值得注意的: 1. 在form表單中要將method屬性設為post,enctype屬性設為multipart/form-data; 2. 在form表單中可以加一個hidden類型的input框,其中名字為 MAX_FILE_SIZE的隱藏值域,通過設置其VALUE可以限制上載文件的大小。當然,這個值不可能超過PHP的配置文件(PHP3為php3.ini,PHP4為php.ini)中的upload_max_filesize,注意這個input框一定要放在所有file類型的input框前面,否則也是無效的哦;;;3. 在PHP程序運行完后,上傳文件被放在了臨時目錄下。如果上傳文件沒有被改名或移動,那么在請求的最后該文件將自動被從臨時文件夾中刪除,所以我們最好立即將新的上傳文件上傳移到一個永久目錄下或更改其文件名。;;首先我們需要一個上載文件的表單網頁(upload.htm):;;<HTML> <HEAD> <TITLE>Upload Your File</TITLE> </HEAD> <BODY> <FORM ACTION="receiver.php3" ENCTYPE="multipart/form-data" METHOD=POST> <INPUT TYPE="HIDDEN" NAME="MAX_FILE_SIZE" VALUE="2000000"> <INPUT TYPE="FILE" NAME="uploadfile" SIZE="24" MAXLENGTH="80"> <BR><BR> <INPUT TYPE="SUBMIT" VALUE="Upload File!" NAME="sendit"> <INPUT TYPE="SUBMIT" VALUE="Cancel" NAME="cancelit"><BR> </FORM> </BODY> </HTML> 處理上載文件的PHP文件(receiver.php3) <? function do_upload () { global $uploadfile, $uploadfile_size; global $local_file, $error_msg; if ( $uploadfile == "none" ) { $error_msg = "對不起,你沒有選定任何文件上傳!"return; } if ( $uploadfile_size > 2000000 ) { $error_msg = "對不起,你要上傳的文件太大了!"return; } $the_time = time (); // 在這里指定你用來存放上傳文件的目錄,你需要對以下目錄有寫權限 // 同時,我們也可以給上傳文件指定另外的目錄,如:$upload_dir = "/local/uploads";;;$upload_dir = "d:/upload"$local_file = "$upload_dir/$the_time"if ( file_exists ( '$local_file' ) ) { $seq = 1; while ( file_exists ( "$upload_dir/$the_time$seq" ) ) { $seq++; } $local_file = "$upload_dir/$the_time$seq"}; rename ( $uploadfile, $local_file ); display_page (); } function display_page () { // 這里是你的頁面內容 } ?> <HTML> <HEAD> <TITLE>php3 Receiving Script</TITLE> </HEAD> <BODY> <? if ( $error_msg ) { echo "<B>$error_msg</B><BR><BR>"} if ( $sendit ) { do_upload (); echo "文件上載成功!"} elseif ( $cancelit ) { header ( "Location: $some_other_script" ); echo "文件上載失敗!"exit; } else { some_other_func (); } ?> </BODY> </HTML> v;;;
標簽:
PHP
上一條:PHP新手上路(六)下一條:PHP新手上路(九)
排行榜