大家好,又见面了,我是你们的朋友全栈君。
代码示例:文件上传到接口,对接口返回的文件进行下载。
<template>
<div class="hello">
<h1>{
{ msg }}</h1>
<input type="file" @change="uploadFile($event)" accept=".sql,.excel,.txt"/>
</div>
</template>
<script>
export default {
name: 'HelloWorld',
props: {
msg: String
},
methods: {
uploadFile: function (event) {
//将接收到的文件以表单形式post到接口
let file = event.target.files[0];
let formData = new FormData();
formData.append('file', file);
let config = {
headers: {'Content-Type': 'multipart/form-data'},//文件上传配置
responseType:'arraybuffer'//文件下载配置
}
this.$axios
.post('/api/action/sql_to_word', formData, config)//进行了跨域代理
.then((response => {
//对返回的文件流进行下载
let url = window.URL.createObjectURL(new Blob([response.data])) //创建下载链接
let link = document.createElement('a') //创建a标签
link.style.display = 'none' //将a标签隐藏
link.href = url //给a标签添加下载链接
link.setAttribute('download', 'abc.docx') // 此处注意,要给a标签添加一个download属性,属性值就是文件名称 否则下载出来的文件是没有属性的,空白白
document.body.appendChild(link)
link.click() //执行a标签
}))
}
}
}
</script>
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/148649.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...