HTML5 文件上传的2种方式
来源:互联网 发布:淘宝卖家ipad客户端 编辑:程序博客网 时间:2024/06/05 20:06
原文地址:http://blog.csdn.net/lovelyelfpop/article/details/71421123
以前上传文件需要提交Form表单。
HTML5方式上传文件,可以通过使用FormData类模拟Form表单提交,从而实现无刷新上传文件。
假设有一个文件选择框
<input type="file" name="pic" id="pic" accept="image/gif" />
有下面2种方式上传文件:
1、XMLHttpRequest(有进度事件)
var files = document.getElementById('pic').files; //files是文件选择框选择的文件对象数组if(files.length == 0) return; var form = new FormData(), url = 'http://.......', //服务器上传地址 file = files[0];form.append('file', file);var xhr = new XMLHttpRequest();xhr.open("post", url, true);//上传进度事件xhr.upload.addEventListener("progress", function(result) { if (result.lengthComputable) { //上传进度 var percent = (result.loaded / result.total * 100).toFixed(2); }}, false);xhr.addEventListener("readystatechange", function() { var result = xhr; if (result.status != 200) { //error console.log('上传失败', result.status, result.statusText, result.response); } else if (result.readyState == 4) { //finished console.log('上传成功', result); }});xhr.send(form); //开始上传
2、Fetch API(目前不支持进度事件)
var form = new FormData(), url = 'http://.......', //服务器上传地址 file = files[0];form.append('file', file);fetch(url, { method: 'POST', body: form}).then(function(response) { if (response.status >= 200 && response.status < 300) { return response; } else { var error = new Error(response.statusText); error.response = response; throw error; }}).then(function(resp) { return resp.json();}).then(function(respData) { console.log('文件上传成功', respData);}).catch(function(e) { console.log('文件上传失败', e);});
0 0
- HTML5 文件上传的2种方式
- HTML5的上传文件AJAX方式
- Html5的文件上传
- 基于Html5的文件上传
- 文件上传方式2
- 文件上传到服务器的2种方式
- SpringMVC上传文件的三种方式
- 上传文件的几种方式
- springMVC上传文件的两种方式
- 文件上传的三种方式-Java
- springmvc文件上传的三种方式
- 文件上传的几种方式
- Java文件上传的两种方式
- springMVC 的两种文件上传方式
- 文件上传的几种方式
- SpringMVC上传文件的三种方式
- 实现文件上传的几种方式
- SpringMVC上传文件的三种方式
- Hbase统计表总行数的三种方式
- 数据库索引的实现原理
- 将linux文件中的tab更换为空格的三种方法2010-08-09 15:50:36
- Spring定时任务的几种实现
- 补2
- HTML5 文件上传的2种方式
- java.util.ConcurrentModificationException 解决办法(使用迭代器时出现异常)
- Java利用QR Code生成二维码(二)
- SNTP以win7为服务器的配置
- 一个单链表,将末节点插入到第一个节点后面,并且删除末节点。
- 关于Tomcat单独运行和在eclipse下运行时路径的问题
- Fingerprint CtsOsTestCases fail
- PAT1016. 部分A+B (15)
- 【机器学习】浅谈聚类算法