这篇文章主要为大家详细介绍了IE9 elementUI文件上传的问题解决,具有一定的参考价值,可以用来参考一下。
感兴趣的小伙伴,下面一起跟随四海网的小编两巴掌来看看吧!
问题: IE9中无法使用FormData
项目使用VUE编写,UI是ElementUI,但是Element官方明确了upload方面是不支持IE9的,看源码的意思是已经搁置了iframe上传的后续开发
改用vue-upload-component 作者对IE9专门做了兼容,就是使用起来理解成本有点儿高
通过ref获取upload实例,在添加文件时 激活上传
代码如下:
this.$refs.upload.active = true
如何判断当前上传的状态(添加,更新,删除,上传成功,上传失败)
每次上传的状态变化时 都会调用@input-file绑定的回调,形参是newFile, oldFile,通过新旧文件的对比来得到当前的状态,感觉有点儿反策略模式的意思,自己通过元状态的组合来得到当前状态,习惯的话觉得还是挺有意思的
代码如下:
inputFile(newFile, oldFile) {
// 旧文件活跃 新文件不活跃 此时上传过程完成
if (newFile && oldFile && !newFile.active && oldFile.active) {
this.$refs.upload.active = false
// 获得相应数据
let res = '{}'
// 此处判断相对简单,可以参考jquery.form.js中做的判断
if (/<pre/.test(newFile.response)) {
res = />(.*)</.exec(newFile.response)[1]
}
res = JSON.parse(res)
if (res.code !== 200) {
if (res.code === 402) {
this.$route.push('/login')
return
}
Message.error(res.message)
} else {
Message.success('上传成功')
// 回显图片
this.upload.url = res.data.url.replace(/&/g, '&')
}
if (newFile.xhr) {
// 获得响应状态码
console.log('status', newFile.xhr.status)
}
}
// 添加文件
if (newFile && !oldFile) {
this.$refs['upload' + this.index].active = true
}
}
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持四海网。
本文来自:http://www.q1010.com/184/6746-0.html
注:关于IE9 elementUI文件上传的问题解决的内容就先介绍到这里,更多相关文章的可以留意四海网的其他信息。
关键词:vue.js
四海网收集整理一些常用的php代码,JS代码,数据库mysql等技术文章。