Ajax上传多文件
AJAX的采用标志着的Web历史上的一个巨大飞跃。与Web服务器通信而不需要重新加载页面的能力已改变了Web应用程序构建。动态网站的概念形成以后,AJAX(XMLHttpRequests) 技术发展迅速。 选择要上传的文件你需要做的第一件事就是建立你的HTML表单让用户选择文件。让事情简单,我们用标准的 <form id="file-form" action="handler.php" method="POST"> <input type="file" id="file-select" name="photos[]" multiple/> <button type="submit" id="upload-button">Upload</button> </form> 请注意, 上传文件到服务器首先你需要创建三个变量来获取HTML里的 var form = document.getElementById('file-form'); var fileSelect = document.getElementById('file-select'); var uploadButton = document.getElementById('upload-button'); 下一步你需要绑定一个事件监听器到表单的 form.onsubmit = function(event) { event.preventDefault(); // 更新按钮里的文字 uploadButton.innerHTML = 'Uploading...'; // 其余的代码将在这里... } 在事件监听器里,首先调用 // 获取选择的文件 var files = fileSelect.files; 然后创建一个新的 // 创建一个FormData对象 var formData = new FormData(); 然后,通过循环获取 // 对每个文件进行循环处理 for (var i = 0; i < files.length; i++) { var file = files[i]; // 检查文件类型 if (!file.type.match('image.*')) { continue; } // 添加文件到formData formData.append('photos[]',file,file.name); } 在这里,你先读取当 注:
// Files formData.append(name,filename); // Blobs formData.append(name,blob,filename); // Strings formData.append(name,value); 第一个参数指定数据项的 下一步你需要设置 // 设置请求。 var xhr = new XMLHttpRequest(); 现在您需要创建一个新连接到服务器。你使用 // 打开连接。 xhr.open('POST','handler.php',true); 下一步你需要建立一个事件侦听器, // 请求完成时建立一个处理程序。 xhr.onload = function () { if (xhr.status === 200) { // File(s) uploaded. uploadButton.innerHTML = 'Upload'; } else { alert('An error occurred!'); } }; 剩下要做的是发送请求。用 // 发送数据。 xhr.send(formData); 这就是开始使用Ajax文件上传的内容。您的服务器端代码需要提取文件并处理。 浏览器的支持浏览器支持总体上是好的。Internet Explorer是唯一的例外。IE 10及以上的版本支持,但早期版本的IE不支持本文提到的一些XMLHttpRequest功能。
总结在这篇文章中你学到了如何上传文件使用本地JavaScript技术,Web服务器。在功能方面的进步,消除XMLHttpRequests供开发者使用第三方浏览器插件来处理文件上传的需要。这是很好的为本地的浏览器功能往往是更快和更比一个插件提供的安全。 英文原文 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |