element vue实现文件上传
文件上传方法封装
import _http from "@/js/https";
uploadMultipeFile(url,method,fileList,params,callback,errorBack){
let fileData= new FormData()
for(let i=0;i<fileList.length;i++){
fileData.append("file",fileList[i].raw)
}
for(let key in params){
if(params.hasOwnProperty(key)){
fileData.append(key,params[key])
}
}
_http({
url,
method,
data:fileData,
contentType:false,
dataType:"json"
})
.then(res=>{
callback&&callback(res)
})
.catch(err=>{
console.log(err)
errorBack&&errorBack(err)
})
}
方法调用
<el-upload
class="upload-demo"
:action="uploadUrl"
:on-change="handleChange"
multiple
:file-list="fileList"
:show-file-list="false"
:auto-upload="false"
>
<el-button size="small" type="primary">添加文件</el-button>
</el-upload>
<el-button size="small" type="primary" @click="handleUpload">点击上传</el-button>
<script>
import {uploadMultipeFile} from "@/js/utils.js"
export default {
data:{
fileList:[],
uploadUrl:"",
},
methods:{
handleChange(file,fileList){
this.fileList=fileList
},
handleUpload(){
let fileList=this.fileList;
uploadMultipeFile({
"",
"",
fileList,
{},
(res)=>{
console.log(res)
},
(err)=>{
}
})
}
}
}
</script>