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

首頁 > 編程 > JavaScript > 正文

jQuery Ajax使用FormData上傳文件和其他數據后端web.py獲取

2019-11-19 16:22:12
字體:
來源:轉載
供稿:網友

XMLHttpRequest Level 2 添加了一個新的接口――FormData。與普通的 Ajax 相比,使用 FormData 的最大優點就是我們可以異步上傳二進制文件。

jQuery 2.0+的版本支持FormData

方法一:使用<form>表單初始化FormData對象方式上傳文件

•前端(JQuery):

<form enctype="multipart/form-data">  <input type="file" name="myfile" onchange="loadFile(this.files[0])"></form><script>  function loadFile(file){    var formdata = new FormData($$('form')[0]);    $.ajax({      url: 'jobs/add',      type: 'POST',      datatype: 'json',      data: formdata,      cache:false,      traditional: true,      contentType: false,      processData: false,      success: function (data) {},      error: function () {}    });  }</script>

•后臺(web.py):

class Add:  def POST(self):    i = web.input(myfile={})    print(i['myfile'].filename) #文件名    print(i['myfile'].value) #文件內容    print(i['myfile'].file.read()) #文件內容

 注意:

1.<form>的enctype屬性需要設置為“multipart/form-data”

2.$.ajax中processData、contentType和cache需要設置為false

3.后端通過web.input獲取文件的字段名,同前端指定的input標簽的name屬性

方法二√:不用<form>,使用FormData對象添加字段方式上傳文件

有時,我們并不想用

標簽,而且通過ajax傳給后端的并不只有文件,可能還有其他的鍵值對,這時就可以用這個方法

•前端(JQuery):

<input type="file" onchange="loadFile(this.files[0])" />function loadFile(file){  container.fd = new FormData();  container.fd.append('myfile',file);  container.fd.append('otherkey',othervalue);  $.ajax({    url: 'jobs/add',    type: 'POST',    datatype: 'json',    data: fd,    cache:false,    traditional: true,    contentType: false,    processData: false,    success: function (data) {},    error: function () {}  });}

•后臺(web.py):

class Add:  def POST(self):    i = web.input(myfile={}, otherkey='')    print(i['myfile'].filename) #文件名    print(i['myfile'].value) #文件內容    print(i['myfile'].file.read()) #文件內容

 注意:

1.沒有<form>標簽(有了也不錯)

2.append()方法的第二個參數是文件對象,在html中已經通過loadFile方法的參數傳過來

3.后端通過web.input獲取文件的字段名,同前端append()方法的第一個參數

4.因為通過web.input獲取的值都是字符串,如果除文件以外的鍵值對傳過來是null,會自動轉化為字符串'null'。這點處理的時候需要注意

以上所述是小編給大家介紹的jQuery Ajax使用FormData上傳文件和其他數據后端web.py獲取,希望對大家有所幫助,如果大家有任何疑問歡迎給我留言,小編會及時回復大家的!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 阿荣旗| 郯城县| 湖州市| 大方县| 二连浩特市| 乐清市| 德钦县| 金寨县| 壤塘县| 吉木乃县| 祁连县| 西丰县| 临夏市| 清水县| 葵青区| 湖口县| 陈巴尔虎旗| 雅江县| 白玉县| 朝阳市| 浏阳市| 馆陶县| 洛扎县| 彰武县| 邻水| 清苑县| 余干县| 大名县| 宁晋县| 德惠市| 辽阳市| 满城县| 建水县| 自治县| 商洛市| 平凉市| 河池市| 鱼台县| 瑞安市| 阳城县| 江达县|