首頁 >後端開發 >php教程 >新手上路請多關照 PHP新手上路(八)

新手上路請多關照 PHP新手上路(八)

WBOY
WBOY原創
2016-07-29 08:34:45966瀏覽

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):  


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 ()
{
global $uploadfile, $uploadfile_size;
global $local_file, $error_msg;
if ( $uploadfile == "none" )
{
$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 ( 🎜>{
// 這裡是你的頁面內容
}
?>


php3 Receiving Script



if ( $error_msg ) { echo "$error_msg

"; }
if ( $sendit )
{
do_upload ();
echo "檔案上載成功! ";
}
elseif ( $cancelit )
{
header ( "Location: $some_other_script" );
echo "檔案上載失敗!";
exit
; }
else
{
some_other_func ();
}
?>

v   

以上就介紹了新手上路請多關照 PHP新手上路(八),包括了新手上路請多關照方面的內容,希望對PHP教程有興趣的朋友有所幫助。


陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn