原生js上传图片
<input type="file" id="fileId" onchange="changeFn()">
<script>
function changeFn(){
let fileDom = document.getElementById('fileId');
// console.log(fileDom);
let file = fileDom.files[0];
let formdata = new FormData();
formdata.append('file',file)
let xhr = new XMLHttpRequest();
xhr.open('post',url,false);
xhr.setRequestHeader('Authorization',localStrorage.token)
xhr.onreadystatechange = function(){
if(xhr.readyState==4){
console.log(JSON.parse(xhr.responseText));
let {meta} = JSON.parse(xhr.responseText);
if(meta.status==200){
alert(meta.msg)
}
}
}
xhr.send(formdata)
}
</script>
element图片上传组件
<template>
<div>
<el-upload
v-loading="loading"
action="****"
:headers="headers"
:on-success="successfn"
:on-error="errorfn"
:on-progress="progressfn"
:on-preview="handlePreview"
:on-remove="handleRemove"
:before-remove="beforeRemove"
multiple
:limit="3"
:on-exceed="handleExceed"
:file-list="fileList"
>
<el-button size="small" type="primary">点击上传</el-button>
<div slot="tip" class="el-upload__tip">
只能上传jpg/png文件,且不超过500kb
</div>
</el-upload>
</div>
</template>
<script>
export default {
data() {
return {
fileList: [],
loading:false,
headers:{
Authorization:localStorage.token
}
};
},
methods: {
successfn(response, file, fileList){
console.log(response, file, fileList);
let {meta} = response;
if(meta.status==200){
this.$message.success(meta.msg)
}else{
this.$message.error(meta.msg)
}
setTimeout(() => {
this.loading=false
}, 500);
},
errorfn(err, file, fileList){
console.log(err, file, fileList);
},
progressfn(event, file, fileList){
console.log(event, file, fileList);
this.loading=true
},
handleRemove(file, fileList) {
console.log(file, fileList);
},
handlePreview(file) {
console.log(file);
},
handleExceed(files, fileList) {
this.$message.warning(
`当前限制选择 3 个文件,本次选择了 ${files.length} 个文件,共选择了 ${
files.length + fileList.length
} 个文件`
);
},
beforeRemove(file) {
return this.$confirm(`确定移除 ${file.name}?`);
},
},
};
</script>
<style>
</style>