利用form表單的target屬性和iframe
一、上傳檔案的一個php教程方法。
該方法接受一個$file參數,該參數為從用戶端擷取的$_files變數,返回重新命名後的檔案名稱,如果上傳失敗,則返回Null 字元串。
php代碼
function uploadfile($file) {
// 上傳路徑 $destinationpath = "./upload/";
if (!file_exists($destinationpath)){
mkdir($destinationpath , 0777); }
//重新命名
$filename = date('ymdhis') . '_' . iconv('utf-8' , 'gb2312' , basename($file['name']));
if (move_uploaded_file($file['tmp_name'], $destinationpath . $filename)) { return iconv('gb2312' , 'utf-8' , $filename);
} return '';
}
二、用戶端html代碼
這裡正是技巧所在,添加另一個iframe來實現。表單標籤form定義了一個屬性target,該屬性解釋如下:
[pre]target屬性:
_blank ---------- 新開視窗
_self ----------- 自身
_top ------------ 主架構
_parent --------- 父架構
自訂名字 ----- 出現於架構結構,將會在該名稱的架構內開啟連結
本例中採用iframe名字,所以表單在提交時會在iframe內開啟連結(即無重新整理,確切的說應該是
感覺無重新整理)
在表單提交時,調用startupload方法,當然這是js定義的。
[/pre][pre]此外我們還定義一個span來顯示提示資訊。代碼如下:
[/pre]xhtml代碼
<form id="upform" action="upload.php" method="post" enctype="multipart/form-data" target="upload_target" onsubmit="startupload()"> 匯入檔案:<input type="file" name="myfile" id="myfile" />
<input type="submit" name="submitbtn" value="匯入" /> <iframe id="upload_target" name="upload_target" src="#" style="width:0;height:0;border:0px solid #fff;">iframe>
form> <span id="info">span>