原生javascript上传文件插件封装

原生javascript上传文件插件简易封装

封装函数的代码:

function uploadFile(options) {
//如果调用的时候没有传上传的路径,就抛出异常url为空
	if(!options.url){
		throw new Error('url is empty')
	}
	//创建XMLHttpRequest对象
	var client = new XMLHttpRequest();
	//判断在调用的时候有没有传入这两个函数参数,防止报错
	var success = options.success || function() {};
	var error = options.error || function() {};
	//设置公用的方法,不管上传成功还是失败都会执行的函数
	var complete = options.complete || function() {};
	client.open('post', options.url, true);
	client.setRequestHeader("X-Requested-With", "XMLHttpRequest");
	client.withCredentials = false;
	client.send(options.data);
	client.onreadystatechange = function() {
		if(this.readyState !== 4) {
			return;
		}
		if(this.status === 200 || this.status === 201) {
			var data = JSON.parse(this.responseText);
			//如果成功,就调用成功函数
			success(data);
		} else {
			var data = JSON.parse(this.responseText);
			error(data);
		}
		complete();
	};
	return client;
};

函数调用的时候:

var imgFile = document.getElementById('uploadFile');
var fd = new FormData();
fd.append('file',imgFile.files[0]);
api({
	url: '',
	data: '',
	success:function() {
		
	},
	error:function() {
		
	},
	complete:function() {
		
	}
})

1.调用时和jQuery的ajax在调时是一样的写法,不过里面判断的东西还很少,很不严谨。
2.也支持多文件上传,需要在标签上设置multiple属性,并且都放进formData对象中。此例中是fd

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值