欧美大屁股bbbbxxxx,狼人大香伊蕉国产www亚洲,男ji大巴进入女人的视频小说,男人把ji大巴放进女人免费视频,免费情侣作爱视频

歡迎來到入門教程網(wǎng)!

AJAX相關(guān)

當(dāng)前位置:主頁 > 網(wǎng)絡(luò)編程 > AJAX相關(guān) >

ajax使用formdata上傳文件流

來源:本站原創(chuàng)|時(shí)間:2020-01-11|欄目:AJAX相關(guān)|點(diǎn)擊: 次

今天在做項(xiàng)目的時(shí)候涉及到了ajax上傳文件流的問題,由于是移動(dòng)端兩個(gè)頁面的兩個(gè)表單使用同一個(gè)ajax地址進(jìn)行上傳數(shù)據(jù)給后臺(tái),數(shù)據(jù)中涉及到了不同類型的input,其中存在了file類型的input,導(dǎo)致無法使用表單序列化直接傳輸數(shù)據(jù)。

只存在傳遞一般的參數(shù)時(shí),可以使用$("#表單id").serialize()對(duì)form表單序列化,從而將form表單中的所有參數(shù)傳遞到服務(wù)端。而上傳文件的文件流時(shí)無法被序列化并傳遞的,因此使用了FormData的對(duì)象進(jìn)行文件上傳。具體formdata的使用可以參見:官網(wǎng)

//html如下
//form1
<form class="col-xs-12 register-form" id="registerForm" method="post" action="">
 <div class="form-group col-xs-wap tc">
  <div class="col-xs-2">
  <i class="icon i-store"></i>
  </div>
  <div class="col-xs-10">
  <input type="text" class="form-control" placeholder="店鋪名稱" id="shopName" name="shopName">
  </div>
 </div>
 <div class="form-group col-xs-wap tc">
  <div class="col-xs-2">
  <i class="icon i-user"></i>
  </div>
  <div class="col-xs-10">
  <input type="text" class="form-control" placeholder="本人姓名" id="name" name="name">
  </div>
 </div>
</form>
//form2
<form action="" method="post" class="mt10" id="registerForm2">
 <input id="frontPhoto" name="frontPhoto"/>
 <input id="backPhoto" name="backPhoto"/>
 <input id="handlePhoto" name="handlePhoto"/>
</form>
$("#btn-register-confirm").click(function () {
 //upRegister()是表單驗(yàn)證,這就沒有給出了
 if (upRegister()){
 var form=$("#registerForm2")[0];//第二個(gè)表單的id,注意[0]不能漏掉
 var fd=new FormData(form);
 //由于后臺(tái)接收的數(shù)據(jù)只能是序列化之后的樣子,所以將第一個(gè)表單的字段存放在cookie中。通過fd.append()以鍵值對(duì)形式存放
 fd.append("shopName",$.cookie("shopName"));
 fd.append("name",$.cookie("name"));
 

 $.ajax({
  type:'post',
  async: false,
  url:"url",
  data:fd,
  processData:false,//因?yàn)閐ata值是FormData對(duì)象,不需要對(duì)數(shù)據(jù)做處理。
  contentType:false,//因?yàn)槭怯?lt;form>表單構(gòu)造的FormData對(duì)象,所以這里設(shè)置為false。
  success:function(data){
  if (data.resultCode=="0"){
   webToast("成功注冊!");
   console.log("成功注冊");

  }
  },
  error:function(){
  console.log("注冊失敗");
  }
 })
 }
});

以上就實(shí)現(xiàn)了ajax上傳文件流及一般參數(shù)。這主要涉及到2方面:

  1. 不同頁面的不同表單要放在同一個(gè)按鈕觸發(fā)同一個(gè)ajax傳輸?shù)椒?wù)器,使用cookie先存儲(chǔ)一個(gè)表單數(shù)據(jù),這可能會(huì)麻煩些并且不安全,但目前我也只想到了這種方式,如果有更好的歡迎補(bǔ)充;
  2. ajax上傳文件流,要注意var fd=new FormData($("#表單id")[0]);[0]千萬要帶上,我就是因?yàn)檫@個(gè)弄了一整天才好。processData:false, contentType:false,還有ajax的這兩個(gè)參數(shù)要寫為false,具體原因上面已經(jīng)寫了。

以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持我們。

上一篇:沒有了

欄    目:AJAX相關(guān)

下一篇:基于Spring Boot利用 ajax實(shí)現(xiàn)上傳圖片功能

本文標(biāo)題:ajax使用formdata上傳文件流

本文地址:http://mengdiqiu.com.cn/a1/AJAXxiangguan/11263.html

網(wǎng)頁制作CMS教程網(wǎng)絡(luò)編程軟件編程腳本語言數(shù)據(jù)庫服務(wù)器

如果侵犯了您的權(quán)利,請(qǐng)與我們聯(lián)系,我們將在24小時(shí)內(nèi)進(jìn)行處理、任何非本站因素導(dǎo)致的法律后果,本站均不負(fù)任何責(zé)任。

聯(lián)系QQ:835971066 | 郵箱:835971066#qq.com(#換成@)

Copyright © 2002-2020 腳本教程網(wǎng) 版權(quán)所有