vue使用vant的uploader上传图片到服务器

1、封装上传文件的公共方法

//上传文件
uploadFiles(targetFormData, callback) {
	let root = window.location.hostname === 'xxx.xxx.com'
		// 正式环境api接口
		?
		`xxx1.xxx1.com/`
		// 测试环境api接口
		:
		`xxx1.xxx1.com/`;
	// 发送请求
	var xhr = new XMLHttpRequest();
	var timeTmp = 0;
	var intervalObj = setInterval(function () {
		timeTmp++;
		if (timeTmp > 40) {
			clearInterval(intervalObj);
			console.log('传送已超时');
		}
	}, 1000);
	xhr.onreadystatechange = function () {
		if (xhr.readyState === 4 && xhr.status === 200) {
			clearInterval(intervalObj);
			// 上传成功,获取到结果 results
			var res = JSON.parse(xhr.responseText);
			if (res.success) {
				callback(res.data);
			} else {
				console.log(res.msg);
			}
		}
	};
	//侦查当前附件上传情况
	xhr.open("POST", root + 'attachment/upload');
	xhr.send(targetFormData);
},
//判断是否是数组;
isArrayFn(value) {
	if (typeof Array.isArray === "function") {
		return Array.isArray(value);
	} else {
		return Object.prototype.toString.call(value) === "[object Array]";
	}
},

2、页面使用
场景一:一次只能上传一张,有多个上传域


 

场景二:一次可以上传多张图片,有一个上传域


 

这里的图片会是一个数组形式,提交的时候和其他表单数据一起提交即可,都有对应的key、value值,不需要再做处理

你可能感兴趣的:(vue)