FormData 物件的使用
在本文章中
如何建立一個FormData物件
透過HTML表單創建FormData物件
使用FormData物件上傳檔案
#透過AJAX提交表單和上傳檔案可以不使用FormData物件
#相關連結
透過FormData物件可以組裝一組用 XMLHttpRequest
傳送請求的鍵/值對。它可以更靈活方便的發送表單數據,因為可以獨立於表單使用。如果你把表單的編碼類型設定為multipart/form-data ,則透過FormData傳輸的資料格式和表單透過submit()
方法傳輸的資料格式相同
#如何建立一個FormData物件Edit
你可以自己建立一個FormData對象,然後透過呼叫它的append()
方法來新增字段,就像這樣:
var formData = new FormData(); formData.append("username", "Groucho"); formData.append("accountnum", 123456); // 数字 123456 会被立即转换成字符串 "123456"// HTML 文件类型input,由用户选择formData.append("userfile", fileInputElement.files[0]);// JavaScript file-like 对象var content = '<a><b>hey!</b></a>'; // 新文件的正文...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" 都包含一個檔案.欄位"accountnum" 是數字類型,它將被FormData.append()
方法轉換成字串型別(FormData
物件的欄位類型可以是 Blob
, File
, 或string: 如果它的欄位類型不是Blob也不是File,則會被轉換成字串型別。 "accountnum", "userfile" 和 "webmasterfile"四個字段,然後使用XMLHttpRequest
send()方法傳送表單資料。 #類型。功能並將其擴展為支援使用者係統上的檔案。 Edit
想要建構一個包含Form表單資料的FormData對象,需要在建立FormData物件時指定表單的元素。 ##你還可以在建立一個包含Form表單資料的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對像上傳文件
Edit
#你也可以使用FormData上傳檔案。使用的時候需要在表單中新增一個檔案類型的input:
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物件是透過表單建立的,則表單中指定的請求方式會被應用到方法open()中 。
你也可以直接向FormData物件附加File或Blob類型的文件,如下所示:var form = document.forms.namedItem("fileinfo");
form.addEventListener('submit', function(ev) { var oOutput = document.querySelector("p"),
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);
使用appned()方法時,可以透過第三個可選參數設定發送請求的頭 Content-Disposition
指定檔案名稱。如果不指定檔案名稱(或不支援該參數時),將使用名字「blob」。 如果你設定正確的配置項,你也可以透過jQuery來使用FormData物件:data.append("myfile", myBlob, "filename.txt");
#
以上是JavaScript中FormData 在物件中運用的詳細內容。更多資訊請關注PHP中文網其他相關文章!

javaandjavascriptaredistinctlanguages:javaisusedforenterpriseandmobileapps,while javascriptifforInteractiveWebpages.1)JavaisComcompoppored,statieldinglationallyTypted,statilly tater astrunsonjvm.2)

JavaScript核心數據類型在瀏覽器和Node.js中一致,但處理方式和額外類型有所不同。 1)全局對像在瀏覽器中為window,在Node.js中為global。 2)Node.js獨有Buffer對象,用於處理二進制數據。 3)性能和時間處理在兩者間也有差異,需根據環境調整代碼。

JavaScriptusestwotypesofcomments:single-line(//)andmulti-line(//).1)Use//forquicknotesorsingle-lineexplanations.2)Use//forlongerexplanationsorcommentingoutblocksofcode.Commentsshouldexplainthe'why',notthe'what',andbeplacedabovetherelevantcodeforclari

Python和JavaScript的主要區別在於類型系統和應用場景。 1.Python使用動態類型,適合科學計算和數據分析。 2.JavaScript採用弱類型,廣泛用於前端和全棧開發。兩者在異步編程和性能優化上各有優勢,選擇時應根據項目需求決定。

選擇Python還是JavaScript取決於項目類型:1)數據科學和自動化任務選擇Python;2)前端和全棧開發選擇JavaScript。 Python因其在數據處理和自動化方面的強大庫而備受青睞,而JavaScript則因其在網頁交互和全棧開發中的優勢而不可或缺。

Python和JavaScript各有優勢,選擇取決於項目需求和個人偏好。 1.Python易學,語法簡潔,適用於數據科學和後端開發,但執行速度較慢。 2.JavaScript在前端開發中無處不在,異步編程能力強,Node.js使其適用於全棧開發,但語法可能複雜且易出錯。

javascriptisnotbuiltoncorc; sanInterpretedlanguagethatrunsonenginesoftenwritteninc.1)JavascriptwasdesignedAsignedAsalightWeight,drackendedlanguageforwebbrowsers.2)Enginesevolvedfromsimpleterterpretpretpretpretpreterterpretpretpretpretpretpretpretpretpretcompilerers,典型地,替代品。

JavaScript可用於前端和後端開發。前端通過DOM操作增強用戶體驗,後端通過Node.js處理服務器任務。 1.前端示例:改變網頁文本內容。 2.後端示例:創建Node.js服務器。


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

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

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

SAP NetWeaver Server Adapter for Eclipse
將Eclipse與SAP NetWeaver應用伺服器整合。

PhpStorm Mac 版本
最新(2018.2.1 )專業的PHP整合開發工具

VSCode Windows 64位元 下載
微軟推出的免費、功能強大的一款IDE編輯器

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具