zl程序教程

您现在的位置是:首页 >  前端

当前栏目

Web前沿—HTML5 Form Data 对象的使用

html5Web对象 Data Form 前沿 使用
2023-09-11 14:20:31 时间
XMLHttpRequest Level 2 添加了一个新的接口——FormData。利用 FormData 对象,我们可以通过 JavaScript 用一些键值对来模拟一系列表单控件,我们还可以使用 XMLHttpRequest 的 send() 方法来异步的提交表单。与普通的 Ajax 相比,使用 FormData 的最大优点就是我们可以异步上传二进制文件。 创建一个FormData对象 你可以先创建一个空的 FormData 对象,然后使用 append() 方法向该对象里添加字段,如下:
oMyForm.append("username", "Groucho"); oMyForm.append("accountnum", 123456); // 数字123456被立即转换成字符串"123456" // fileInputElement中已经包含了用户所选择的文件 oMyForm.append("userfile", fileInputElement.files[0]); var oFileBody = " a id="a" b id="b" hey! /b /a // Blob对象包含的文件内容 var oBlob = new Blob([oFileBody], { type: "text/xml"}); oMyForm.append("webmasterfile", oBlob); var oReq = new XMLHttpRequest(); oReq.open("POST", "http://foo.com/submitform.php"); oReq.send(oMyForm);
注:字段 "userfile" 和 "webmasterfile" 的值都包含了一个文件。通过 FormData.append() 方法赋给字段 "accountnum" 的数字被自动转换为字符(字段的值可以是一个 Blob 对象,File对象或者字符串,剩下其他类型的值都会被自动转换成字符串)。 在该例子中,我们创建了一个名为 oMyForm 的 FormData 对象,该对象中包含了名为"username","accountnum","userfile" 以及 "webmasterfile" 的字段名,然后使用XMLHttpRequest的 send() 方法把这些数据发送了出去。"webmasterfile" 字段的值不是一个字符串,还是一个 Blob 对象。 使用HTML表单来初始化一个FormData对象 可以用一个已有的 form 元素来初始化 FormData 对象,只需要把这个 form 元素作为参数传入 FormData 构造函数即可: var newFormData = new FormData(someFormElement); var formElement = document.getElementById("myFormElement"); var oReq = new XMLHttpRequest(); oReq.open("POST", "submitform.php"); oReq.send(new FormData(formElement)); 你还可以在已有表单数据的基础上,继续添加新的键值对,如下: var formElement = document.getElementById("myFormElement"); formData = new FormData(formElement); formData.append("serialnumber", serialNumber++); oReq.send(formData); 你可以通过这种方式添加一些不想让用户编辑的固定字段,然后再发送. 使用FormData对象发送文件 你还可以使用 FormData 来发送二进制文件.首先在 HTML 中要有一个包含了文件输入框的 form 元素:
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 / /form div id="output" /div a href="javascript:sendForm()" Stash the file! /a
var oOutput = document.getElementById("output"); var oData = new FormData(document.forms.namedItem("fileinfo")); 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 uploading your file. br \/ oReq.send(oData);
你还可以不借助 HTML 表单,直接向 FormData 对象中添加一个 File 对象或者一个 Blob 对象: data.append("myfile", myBlob); 如果 FormData 对象中的某个字段值是一个 Blob 对象,则在发送 HTTP 请求时,代表该 Blob 对象所包含文件的文件名的 "Content-Disposition" 请求头的值在不同的浏览器下有所不同,Firefox使用了固定的字符串"blob",而 Chrome 使用了一个随机字符串。 你还可以使用 jQuery 来发送 FormData,但必须要正确的设置相关选项:
var fd = new FormData(document.getElementById("fileinfo")); fd.append("CustomField", "This is some extra data"); $.ajax({ url: "stash.php", type: "POST", data: fd, processData: false,  // 告诉jQuery不要去处理发送的数据 contentType: false   // 告诉jQuery不要去设置Content-Type请求头
浏览器兼容性 最新内容请见作者的GitHub页:http://qaseven.github.io/
【web前端开发】HTML知识点超详细总结 网页是构成网站的基本元素,是承载各种网站应用的平台.网页通常是指HTML格式的文件 文件扩展名为.html或.htm 它通过浏览器来阅读 HTML不是一种编程语言,而是一种标记语言.
web前端html写一个动态中秋明月!祝福大家中秋快乐! 中秋节,是我们国家的四大传统节日之一!中秋节有很多的别称,有祭月节、月光诞、月夕、秋节、仲秋节、拜月节等等,仲秋节源自于天象崇拜,有上古时代秋夕祭月演变而来。中华求解中秋节自古便有祭月、赏月、吃月饼、看花灯、赏桂花、饮桂花酒等民俗,流传至今,经久不息。
WEB安全之html基础 写了好久的算法和数据结构了,终于要进我的主业了,(数据结构和算法还会继续更新)。在渗透过程中,我们往往会写钓鱼页面,不可能写的页面被别人看到一眼假。包括往往会遇到前端的漏洞,所以学好前端三件套,尤为重要,这也是我接下来要做的事,让你们花更少的时间,学会前端三件套。今天先开一节即html。争取用最少的时间,完成前端的学习。