亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 網站 > WEB開發 > 正文

FormData的詳細介紹及使用

2024-04-27 15:06:58
字體:
來源:轉載
供稿:網友

FormData的詳細介紹及使用請點擊此處,那里對FormData的方法和事件已經表述的非常清楚,這里就不再浪費時間在介紹一遍了。本文主要針對FormData對象的使用以及異步文件上傳進行詳細的說明。

FormData對象可以讓我們組織一個使用xmlHttPRequest對象發送的鍵值對的集合。它主要用于發送表單數據,但是可以獨立于使用表單傳輸的數據。

一、從頭開始創建一個FormData對象

你可以創建一個你自己的FormData對象,然后通過append() 方法向對象中添加鍵值對,就像下面這樣:

var formData = new FormData();formData.append("username", "Groucho");formData.append("accountnum", 123456); // number 123456 is immediately converted to a string "123456"http:// HTML file input, chosen by userformData.append("userfile", fileInputElement.files[0]);// javaScript file-like objectvar content = '<a id="a"><b id="b">hey!</b></a>'; // the body of the new file...var blob = new Blob([content], { type: "text/xml"});formData.append("webmasterfile", blob);var request = new xmlhttpRequest();request.open("POST", "http://foo.com/submitform.php");request.send(formData);

注意:字段”userfile” 和 “webmasterfile” 都包含文件(file)。被分配到字段”accountnum”上的數字直接被FormData.append()方法轉換成了字符串(字段的值(value)可能是一個Blob, File, 或一個string:如果值既不是Blob也不是File,則值會被轉換成一個string)。

這個例子創建了一個FormData實例,其中包含字段”username”, “accountnum”, “userfile” 和 “webmasterfile”,然后使用XMLHttpRequest對象的send()方法去發送表單數據。字段”webmasterfile”是一個Blob。一個Blob對象代表一個文件對象的原始數據。但是Blob代表的數據不必須是Javascript原生格式的數據。文件接口是基于Blob,繼承Blob功能和擴大它對用戶文件系統的支持。為了構建一個Blob可以調用Blob()構造函數。

二、從一個HTML表單獲得一個FormData對象

為了獲得一個包含已存在表單數據的FormData對象,在創建FormData對象的時候需要指定表單元素。

var formData = new FormData(someFormElement);

就像下面這樣:

var formElement = document.querySelector("form");var request = new XMLHttpRequest();request.open("POST", "submitform.php");request.send(new FormData(formElement));

你也可以在獲得FormData對象之后增加另外的數據,就像下面這樣:

var formElement = document.querySelector("form");var formData = new FormData(formElement);var request = new XMLHttpRequest();request.open("POST", "submitform.php");formData.append("serialnumber", serialNumber++);request.send(formData);

這樣你可以在發送之前增加額外的信息,不一定是用戶編輯的。

三、使用FormData對象發送文件

你可以使用FormData發送文件。簡單的<form>中在包含一個<input>元素就可以:

<form enctype="multipart/form-data" method="post" name="fileinfo"> <label>Your email address:</label> <input type="email" autocomplete="on" autofocus name="userid" placeholder="email" required size="32" maxlength="64" /><br /> <label>Custom file label:</label> <input type="text" name="filelabel" size="12" maxlength="32" /><br /> <label>File to stash:</label> <input type="file" name="file" required /> <input type="submit" value="Stash the file!" /></form><div></div>

然后你可以使用下面的代碼去發送:

var form = document.forms.namedItem("fileinfo");form.addEventListener('submit', function(ev) { var oOutput = document.querySelector("div"), oData = new FormData(form); oData.append("CustomField", "This is some extra data"); var oReq = new XMLHttpRequest(); oReq.open("POST", "stash.php", true); oReq.onload = function(oEvent) { if (oReq.status == 200) { oOutput.innerHTML = "Uploaded!"; } else { oOutput.innerHTML = "Error " + oReq.status + " occurred when trying to upload your file.<br //>"; } }; oReq.send(oData); ev.preventDefault();}, false);

你也可以直接向FormData對象中添加File或Blob,就像下面這樣:

data.append("myfile", myBlob, "filename.txt");

當使用append() 方法的時候,可能會使用到第三個參數去發送文件名稱(通過Content-Disposition頭發送到服務器)。如果沒有指定第三個參數或這個參數不被支持的話,第三個參數默認是”blob”。

如果你設置好正確的options,你也可以和jQuery配合起來使用:

var fd = new FormData(document.querySelector("form"));fd.append("CustomField", "This is some extra data");$.Ajax({ url: "stash.php", type: "POST", data: fd, processData: false, // tell jQuery not to process the data contentType: false // tell jQuery not to set contentType});
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产精品视频男人的天堂| 91免费精品视频| 亚洲精品久久久一区二区三区| 国产深夜精品福利| 日韩国产激情在线| 国产亚洲成av人片在线观看桃| 日本精品一区二区三区在线播放视频| 成人午夜在线观看| 在线观看欧美日韩国产| 欧美老女人性生活| 亚洲精品国产福利| 欧美大尺度在线观看| 国产一级揄自揄精品视频| 日韩视频免费观看| 亚洲天堂精品在线| 亚洲男人天堂久| 亚洲色图av在线| 欧美性xxxx在线播放| 美日韩精品免费观看视频| 久久精品影视伊人网| 欧美日韩一区二区在线| 2020久久国产精品| 亚洲free嫩bbb| 深夜精品寂寞黄网站在线观看| 久热精品视频在线| 亚洲国产精品久久精品怡红院| 一区二区三区精品99久久| 欧美疯狂做受xxxx高潮| 日韩欧美极品在线观看| www.xxxx欧美| 成人午夜在线观看| 国产精品2018| 日韩欧美亚洲综合| 欧美极品在线视频| 欧美激情视频免费观看| 国产啪精品视频网站| 最近2019中文字幕第三页视频| 久久理论片午夜琪琪电影网| 97在线视频免费| 97精品国产91久久久久久| 欧美资源在线观看| 国产精品av免费在线观看| 久久99青青精品免费观看| 久久综合久久美利坚合众国| 成人激情视频小说免费下载| 久久国产精品久久久| 97在线视频免费播放| 一本大道香蕉久在线播放29| 2021国产精品视频| 亚洲色图第一页| 操91在线视频| 色噜噜狠狠狠综合曰曰曰88av| 亚洲桃花岛网站| 欧美一区第一页| 欧美视频裸体精品| 欧美黄色片在线观看| 国产精品稀缺呦系列在线| 欧美日韩激情小视频| 亚洲国产精品国自产拍av秋霞| 日韩在线观看网站| 一个色综合导航| 深夜成人在线观看| 日韩va亚洲va欧洲va国产| 欧美日韩国产va另类| 国产精品第二页| 中文字幕最新精品| 亚洲人成电影在线播放| 俺去亚洲欧洲欧美日韩| 91av在线免费观看视频| 国产成人aa精品一区在线播放| 亚洲精品福利在线| 中文字幕亚洲欧美日韩在线不卡| 日韩电影中文字幕| 久久久国产视频| 在线国产精品视频| 91在线视频精品| 久久免费视频观看| 欧美精品videosex性欧美| 亚洲欧美一区二区三区久久| 国产精品美女主播在线观看纯欲| 中文字幕日韩免费视频| 久久99精品久久久久久琪琪| 九色精品免费永久在线| 日韩电影中文字幕av| 日韩在线视频一区| 国产精品亚洲网站| 国产欧洲精品视频| 91精品国产免费久久久久久| 久久久噜久噜久久综合| 亚洲国产高潮在线观看| 亚洲a级在线观看| 91久热免费在线视频| 国产ts一区二区| 亚洲福利视频专区| 国产福利成人在线| 欧美高清视频免费观看| 日韩成人在线视频| 日韩中文字幕在线观看| 亚洲xxxx妇黄裸体| 日本久久中文字幕| 亚洲人线精品午夜| 91久久久久久久久久久久久| 亚洲视频精品在线| 久热精品视频在线| 午夜精品福利电影| 国产精品视频xxxx| 国产精品视频久久久久| 91精品美女在线| 欧美不卡视频一区发布| 深夜福利一区二区| 羞羞色国产精品| 久久国产加勒比精品无码| 国产精品入口夜色视频大尺度| 97在线视频免费看| 国产原创欧美精品| 欧美激情videoshd| 欧美日韩另类视频| 欧美激情亚洲自拍| 久久成人精品一区二区三区| 国产精品电影网| 91日本视频在线| 欧美中文在线视频| 欧美精品videosex极品1| 亚洲精品第一国产综合精品| 亚洲电影免费观看| 青青精品视频播放| 国产亚洲精品美女久久久久| 亚洲欧美日韩天堂| 国产主播喷水一区二区| www.美女亚洲精品| 国产精品久久久久久久电影| 欧美国产亚洲视频| 日韩电影在线观看中文字幕| 中文字幕精品一区二区精品| 高清欧美一区二区三区| 91国产美女视频| 精品视频久久久久久| 91精品国产91| 国产成人精品在线| 久久精品91久久久久久再现| 日韩在线观看免费| 精品毛片三在线观看| 社区色欧美激情 | 久久国产天堂福利天堂| 日韩av电影手机在线观看| 成人黄色网免费| 欧美中文字幕精品| 欧美第一页在线| 日韩在线不卡视频| 日韩av在线高清| 人人澡人人澡人人看欧美| 日韩中文av在线| 精品视频在线导航| 欧美成人免费全部观看天天性色| 国产福利精品视频| 亚洲欧美日韩在线高清直播| 国产精品午夜一区二区欲梦| 黄网站色欧美视频| 国产噜噜噜噜久久久久久久久| 国内精品久久久久影院优| 久久久噜噜噜久噜久久| 欧美日韩午夜剧场| 日韩精品在线观看网站| 亚洲欧美日韩中文在线|