在做網(wǎng)站中,文件域的作用是實現(xiàn)文件上傳,文件域有一個特有的屬性accept,用于指定上傳文件的類型,如果要限制上傳文件的類型,則可以通過設(shè)置該屬性完成。
下面示例為用戶提供簡單的文件上傳操作,當(dāng)用戶上傳文件后,后臺服務(wù)器將以響應(yīng)的方式顯示用戶提交的文件名,如下圖所示。
【操作步驟】
第1步,打開模板頁(orig.html),另存為in-dex.html。
第2步,把光標(biāo)置于<div data-role="content">標(biāo)簽,然后選擇【插入】|【表單】|【表單】命令,在當(dāng)前光標(biāo)位置插入一個表單框。
第3步,選中表單框<form>標(biāo)簽,在【屬性】面板中設(shè)置action和metho屬性值,定義請求文件為同目錄下的request.php,請求的方式為POST。
第4步,把光標(biāo)置于<form>標(biāo)簽內(nèi),插入一個文件域和一個提交按鈕,定義文件域的name屬性值為file,提交按鈕的value屬性值為“提交數(shù)據(jù)”。設(shè)計完整的表單結(jié)構(gòu)代碼如下:
<form action="request.php" data-ajax="false" method="post" name="form1" id="form1"> <label>選擇照片 <input name="file" type="file" /> </label> <i nput type="submit" data-theme="e" data-icon="check" value="提交數(shù)據(jù)" /></form>
第5步,選擇【文件】|【另存為】命令,把index.html另存為request.php。在request.php文檔中,清除表單結(jié)構(gòu)。然后切換到代碼視圖,編寫PHP腳本代碼:<?php $file = $_POST["file"]; echo "你上傳的文件是:"; echo $file;?>
第6步,在瀏覽器中預(yù)覽index.html頁面,然后單擊【瀏覽】按鈕,選擇一個本地文件,單擊【提交數(shù)據(jù)】按鈕提交表單,則在打開的request.php頁面中立即顯示用戶選擇的文件名,如上圖所示。
【拓展】本示例僅演示了如何獲取文件域中的值,但是沒有真正獲取用戶上傳的圖片,如果要獲取用戶上傳的文件,還需要設(shè)置表單的編碼類型為enctype="multipart/form-data"。
如果要獲取用戶上傳的文件,需要使用全局變量$_FILES(在PHP 4.1.0以前版本中用$HTTP_POST_FILES替代)。此數(shù)組包含所有上傳的文件信息,$_FILES數(shù)組的內(nèi)容如下所示,其中'userfile'表示文件域的名稱。
?$_FILES['userfile']['name']:客戶端機(jī)器文件的原名稱。
?$_FILES['userfile']['type']:文件的MIME類型,如“image/gif”。
?$_FILES['userfile']['size']:已上傳文件的大小,單位為字節(jié)。
?$_FILES['userfile']['tmp_name']:文件被上傳后在服務(wù)端存儲的臨時文件名。
?$_FILES['userfile']['error']:和該文件上傳相關(guān)的錯誤代碼。
文件被上傳后,默認(rèn)會被存儲到服務(wù)端的默認(rèn)臨時目錄中,可以在php.ini中的upload_tmp_dir設(shè)置存儲路徑。