国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > PHP > 正文

php無刷新利用iframe實現頁面無刷新上傳文件

2024-09-04 11:45:03
字體:
來源:轉載
供稿:網友

利用form表單的target屬性和iframe

一、上傳文件的一個php方法

該方法接受一個$file參數,該參數為從客戶端獲取的$_files變量,返回重新命名后的文件名,如果上傳失敗,則返回空字符串,php代碼如下:

  1. function uploadfile($file) {  
  2.  
  3.         // 上傳路徑     $destinationpath = "./upload/";  
  4.         if (!file_exists($destinationpath)){  
  5.             mkdir($destinationpath , 0777);     }  
  6.            //開源代碼Vevb.com 
  7.         //重命名 
  8.         $filename = date('ymdhis') . '_' . iconv('utf-8' , 'gb2312' , basename($file['name']));  
  9.         if (move_uploaded_file($file['tmp_name'], $destinationpath . $filename)) {         return iconv('gb2312' , 'utf-8' , $filename);  
  10.         }     return '';  
  11.       } 

二、客戶端html代碼

這里正是技巧所在,添加另一個iframe來實現,表單標簽form定義了一個屬性target,該屬性解釋如下.

target屬性:

_blank   ----------   新開窗口

_self   -----------   自身

_top   ------------   主框架

_parent   ---------   父框架

自定義名字  -----  出現于框架結構,將會在該名稱的框架內打開鏈接.

本例中采用iframe名字,所以表單在提交時會在iframe內打開鏈接,即無刷新,確切的說應該是感覺無刷新.

在表單提交時,調用startupload方法,當然這是js定義的,此外我們還定義一個span來顯示提示信息,代碼如下:

  1. <form id="upform" action="upload.php" method="post" enctype="multipart/form-data" target="upload_target" onsubmit="startupload()"> 導入文件:<input type="file" name="myfile" id="myfile" /> 
  2.     <input type="submit" name="submitbtn" value="導入" /> <iframe id="upload_target" name="upload_target" src="#" style="width:0;height:0;border:0px solid #fff;">iframe> 
  3.     form> <span id="info">span> 

三、js部分

這部分比較簡單,只是顯示提示信息,實例代碼如下:

  1. function startupload() {  
  2.         var spanobj = document.getelementbyid("info");     spanobj.innerhtml = " 開始上傳";  
  3.     }  
  4.     function stopupload(responsetext){     var spanobj = document.getelementbyid("info");  
  5.         spanobj.innerhtml = " 上傳成功;     spanobj.innerhtml = responsetext;  
  6.       }  

接下來就要看服務器端得處理了.

四、服務器段處理部分,php代碼如下:

  1. $file = $_files['myfile'];   $filename = uploadfile($file);  
  2.       $result = readfromfile("./upload/" . $filename); 
  3. 此外在后面還應該加上一句js代碼用來調用stopupload方法。 
  4. javascript代碼 
  5.       window.top.window.stopupload(""); 
  6. 最后在補上php中的readfromfile方法,就大功告成了。 
  7. php代碼 
  8. //開源代碼Vevb.com 
  9.     function readfromfile($target_path) {  
  10.         // 讀取文件內容     $file = fopen($target_path,'r') or die("unable to open file");  
  11.         $filecontent = '';     while(!feof($file))  
  12.         {         $str = fgets($file);  
  13.             $filecontent .= $str;     }  
  14.         fclose($file);     return $filecontent;  
  15.       }

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 高青县| 顺义区| 南平市| 巢湖市| 织金县| 毕节市| 苍山县| 隆回县| 五常市| 洪雅县| 兰考县| 乃东县| 金秀| 定陶县| 水富县| 浪卡子县| 怀宁县| 巩留县| 天峨县| 仙居县| 普兰县| 永靖县| 璧山县| 灵川县| 亳州市| 威宁| 三原县| 惠来县| 青冈县| 禄劝| 乐清市| 长治县| 石景山区| 永吉县| 游戏| 金阳县| 临泉县| 新建县| 刚察县| 四子王旗| 佛山市|