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值,不需要再做处理

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐