File杂谈——拖拽异步上传实现
在前一篇文章《 File杂谈——拖拽上传前传 》中我制作了一个 静态的拖拽上传界面 ,拖拽文件到显示区域释放,可以显示拖入文件的基本信息。本文将在此基础上进一步加工,打造一个完整的 拖拽上传示例 。 示例说明 点击区域选择文件或直接将文件拖入区域,触发文件上传功能,文件将异步发送到服务器。待服务端处理完成后返回基本信息,在页面中显示。由于服务器容量问题,本示例未做文件保存处理,只是简单的将文件基本信息返回,文件上传的后端具体处理逻辑需要自行补充。 新的小伙伴FormData 我们知道,传统的文件上传如果要实现异步的效果,我们会使用iframe去模拟,或使用flash上传插件。但是今天,我们又认识了一位新成员——FromData,它可以通过js创建表单对象,并可以向该对象中添加表单数据(字符串、数字、文件等)。再结合我们熟悉的XMLHttpRequest对象,将表单数据异步提交到服务端,这样我们的问题就解决了。 下面,我们来看下核心代码: function uploadFile(fs) { var len = fs.length; for (var i = 0; i < len; i++) { sendFile(fs[i]); } } function sendFile(file) { var xhr = new XMLHttpRequest(), fd = new FormData