PHP5薄荷教程[13]文件上傳 收藏
文件上傳使用的是POST方式,一個基本的文件上傳表單如下:
fileupload.htm
<form enctype="multipart/form-data" action="dealfileupload.php" method="POST">
選擇要上傳的文件: <input name="userfile" type="file"/>
<input type="submit" value="上傳"/>
</form>
需要注意的是enctype屬性的值以及file控件里的name屬性,這是用來標(biāo)識上傳的文件的。
該表單的處理腳本如下:
dealfileupload.php
<?php
$docroot=$_SERVER['DOCUMENT_ROOT'];
$fileupload=$docroot."/upload/".$_FILES['userfile']['name'];
if (move_uploaded_file($_FILES['userfile']['tmp_name'],$fileupload)){
echo "文件上傳成功";
}else{
echo "文件上傳失敗";
}
?>
如果上傳成功,則文件將被保存到網(wǎng)站根目錄下的upload目錄中。下面讓我們分析一下這段簡單的處理腳本。
1、$_FILES數(shù)組
如果file控件里的name屬性的值為userfile,則$_FILES['userfile']包含了該上傳文件的信息。假定我們上傳了名為temp.txt的文件,則:
$_FILES['userfile']['name']="temp.txt" 文件名
$_FILES['userfile']['tmp_name']="c:/tmp1" 完整的臨時文件名
$_FILES['userfile']['type']="text/plain" 文件類型
$_FILES['userfile']['size']=1024 文件大?。ㄗ止?jié)數(shù))
$_FILES['userfile']['error']=0 錯誤代碼,0表示成功
2、bool move_uploaded_file (string filename, string destination)
該函數(shù)專門負(fù)責(zé)轉(zhuǎn)移上傳的文件。filename表示完整的臨時文件名,一般是$_FILES['file1']['tmp_name'];destination表示完整的目的文件名,一般使用$_SERVER['DOCUMENT_ROOT']."/upload/".$_FILES['file1']['name']。如果上傳成功,則返回1,否則返回0并報錯。如果想要隱藏錯誤提示,可以這樣寫:@move_uploaded_file(...)
3、如果需要上傳多個文件,則可以設(shè)置多個file控件,注意name屬性要設(shè)置為不同。如:
filesupload.htm
<form enctype="multipart/form-data" action="dealfilesupload.php" method="POST">
選擇要上傳的文件1: <input name="file1" type="file"/>
選擇要上傳的文件2: <input name="file2" type="file"/>
<input type="submit" value="上傳"/>
</form>
dealfilesupload.php
<?php
$docroot=$_SERVER['DOCUMENT_ROOT'];
$file1upload=$docroot."/upload/".$_FILES['file1']['name'];
$file2upload=$docroot."/upload/".$_FILES['file2']['name'];
if (@move_uploaded_file($_FILES['file1']['tmp_name'],$file1upload)){
echo "文件1上傳成功";
}else{
echo "文件1上傳失敗";
}
print "<br/>";
if (@move_uploaded_file($_FILES['file2']['tmp_name'],$file2upload)){
echo "文件2上傳成功";
}else{
echo "文件2上傳失敗";
}
?>
本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請
點擊舉報。