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服務哦。
?痺?hp中,檔案上載還有幾點是值得注意的:
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):
upload your file
enctype="multipart/form-data" method=post>
name="max_file_size" value="2000000">
name="uploadfile" size="24" maxlength="80">
name="sendit">
name="cancelit">
處理上載檔案的php檔案(receiver.php3)
function do_upload ()
if ( $uploadfile_size > 2000000 )
$the_time = time ();
// 在這裡指定你用來存放上傳檔案的目錄,你需要對以下目錄有寫許可權
// 同時,我們也可以給上傳檔案指定另外的目錄,如:$upload_dir = "/local/uploads";
$upload_dir = "d:/upload";
$local_file = "$upload_dir/$the_time";
if ( file_exists ( '$local_file' ) )
$local_file = "$upload_dir/$the_time$seq";
}; rename ( $uploadfile, $local_file );
display_page ();
} function display_page ()
?>
php3 receiving script
if ( $error_msg )
if ( $sendit )
elseif ( $cancelit )
else
?>
PHP新手上路(八)
7.檔案上傳 你可以利用php實現檔案的上傳功能,注意客戶端的瀏覽器應該是netscape3以上或者ie3以上的版本。同時,因為本程式與你的php配置檔案 php3為php3.ini,php4為php.in 設定有關。在執行該程式之前請先檢查您的php配置檔案有沒有做好如下的設定 將 upload ...
PHP新手上路
php的許多特點與其他軟體或者工具有關。利用迄今為止我們所學到的php知識,我們可以試著建立乙個簡單互動的 利用這一過程我們又可以學到不少東西。好吧,我們現在開始專注於乙個典型個人 的建設。標題頁面 front.html 這裡我們有乙個非常簡單的html檔案 歡迎來我的寒舍,雖然這裡現在暫時還沒有什...
PHP新手上路(六)
5.5 計數器 乙個簡單的計數器 function get hitcount counter file 增加一次計數值 count 將新的計數值寫入檔案 fp fopen counter file,w fputs fp,count fclose fp 返回計數值 return count 然後我們更...