亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

首頁 php教程 PHP開發(fā) 仿iframe效果Aajx檔上傳實(shí)例

仿iframe效果Aajx檔上傳實(shí)例

Dec 06, 2016 pm 02:59 PM

前段時間在解決ajax上傳文件時折騰了好一陣。直接用$.post上傳文字訊息肯定是沒有問題的。但$.post直接上傳圖片是不可行的。

後來看到網(wǎng)路上的一些解決方案,有現(xiàn)成的ajax上傳檔案的封裝的方法也有利用flash的。 flash確實(shí)是個好方法 但是不是每個人都會flash的而且下載下來現(xiàn)成的方法要做修改也不是件易事,且文件相對較大。最後只好模擬iframe來實(shí)現(xiàn)。發(fā)現(xiàn)相當(dāng)?shù)暮唵巍?

html:

<iframe name="ajaxUpload" style="display:none"></iframe>
<form name="from1" id="from1" method="post" action="url" enctype="multipart/form-data"target="ajaxUpload">
 <table>
  <tr>
    <td>附件:</td>
    <td><input type="file" id="document" name="document"/></td>
  </tr>
 </table>
 </form>

? ?

這裡是重點(diǎn)。要上傳檔案enctype這個屬性不可少,target的值改為iframe的name的值。

下面寫一下js程式碼,我是用的jQuery所以在用的時候載入jquery的函式庫是不可或缺的。

$(function(){
     if($.browser.msie){
       window.form1.submit();}else{
       $("#form1").submit();}
    });

? ?

這裡是做了一個瀏覽器版本的判斷,因?yàn)镮E是不太符合規(guī)範(fàn)的一個瀏覽器,尤其是IE6。 IE6是不直接支援$("#idName").submit();這種方式的。

服務(wù)端如下,還得回傳一個值,直接submit是無法回傳值的

public void Upload()
{
  HttpPostedBase ff=Request.Files["document"];//這里是獲取上傳的文件流,也可以用索引值來表示如果是多個文件的話
  string fileName=System.DateTime.Now+ff.FileName.ToString();  //這里取出來的文件名是沒有后綴的,所以要保存的話還需要取出文件拓展名。這里就不寫過細(xì),只是為描述這樣一個思路。
  try
  {
    SaveAs(documentPath+fileName+extendtionName);
    Response.Write("<script type=&#39;text/javascript&#39; type=&#39;language&#39;>parent.window.callBackMethod(&#39;上傳成功&#39;);</scrpt>");
  }
  catch
  {
    Response.Write("<script type=&#39;text/javascript&#39; type=&#39;language&#39;>parent.window.callBackMethod(&#39;上傳失敗&#39;);</scrpt>"); //parent.window.methodName();這個是JS調(diào)用父頁的方法。因?yàn)楝F(xiàn)在模擬一個iframe上傳文件,這個iframe的作用就是一個中間站的作用。在父頁點(diǎn)擊上傳后通過target會將頁面文檔流傳入iframe中再上傳服務(wù)端作處理。服務(wù)端有響應(yīng)之后然后再在iframe里面顯示出來,而不是直接在父頁面顯示出結(jié)果。這里可能就是一個alert()彈出一個對話框提示一下,如果是這樣那么不調(diào)父頁方法也行。如果想把這提示的內(nèi)容豐富一點(diǎn)比如彈出個類似人人網(wǎng)的藍(lán)色的對話框之類的。
   }
}

? ?

模擬iframe其實(shí)是頁面局部更新,但是頁面中的這個iframe沒有內(nèi)容而且還是不顯示的,所以它還是不顯示的,所以它還是不顯示的刷新了完全不會影響整個頁面。


本網(wǎng)站聲明
本文內(nèi)容由網(wǎng)友自願投稿,版權(quán)歸原作者所有。本站不承擔(dān)相應(yīng)的法律責(zé)任。如發(fā)現(xiàn)涉嫌抄襲或侵權(quán)的內(nèi)容,請聯(lián)絡(luò)admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費(fèi)脫衣圖片

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅(qū)動的應(yīng)用程序,用於創(chuàng)建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費(fèi)的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費(fèi)的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強(qiáng)大的PHP整合開發(fā)環(huán)境

Dreamweaver CS6

Dreamweaver CS6

視覺化網(wǎng)頁開發(fā)工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)