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

首頁 > 語言 > PHP > 正文

php iframe 無刷新文件上傳代碼

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

原理很簡單,利用form表單的target屬性和iframe來實現的,打開為iframe試就行了,返回就利用js判斷php教程運行后返回的參數是不是成功.

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

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

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

二、客戶端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.    
  6.     window.top.window.stopupload(""); 
  7. //最后在補上php中的readfromfile方法,就大功告成了。 
  8. php代碼 
  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.       }  

總結:方法很簡單扼要,如果你以前沒想到覺得ajax無刷新文件上傳很難,現在明白利用iframe target來制作就覺得很容易了。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 商都县| 额尔古纳市| 杂多县| 凤阳县| 方山县| 明水县| 孙吴县| 石河子市| 红河县| 石家庄市| 南木林县| 祁连县| 揭东县| 永寿县| 桐柏县| 凤山县| 黄平县| 诸城市| 宁城县| 定襄县| 明光市| 高台县| 宁夏| 正安县| 宜良县| 昌邑市| 珲春市| 禹城市| 石阡县| 大关县| 玉门市| 武强县| 临海市| 余江县| 五寨县| 临夏县| 乌苏市| 文山县| 河东区| 通海县| 嘉黎县|