1、传统形式:使用表单元素file
<form id="upload-form" action="upload.php" method="post" enctype="multipart/form-data" >
<input type="file" id="upload" name="upload" /> <br />
<input type="submit" value="Upload" />
</form>
备注:所有浏览器都支持,但是传统的表单上传,属于”同步上传”。也就是说,点击上传按钮后,网页”锁死”,用户只能等待上传结束,然后浏览器刷新,跳到表单的action属性指定的网址。
2、ajax 上传
主要使用FormData 对象
// 检查是否支持FormData
if(window.FormData) {
var formData = new FormData();
// 建立一个upload表单项,值为上传的文件
formData.append('upload', document.getElementById('upload').files[0]);
var xhr = new XMLHttpRequest();
xhr.open('POST', $(this).attr('action'));
// 定义上传完成后的回调函数
xhr.onload = function () {
if (xhr.status === 200) {
console.log('上传成功');
} else {
console.log('出错了');
}
};
xhr.send(formData);
}
本文参考:http://www.ruanyifeng.com/blog/2012/08/file_upload.html