VUE中文件的下载和上传,其实主要是上传,上传是有组件可以去写的,但是下载就直接使用a标签就好。a标签写的时候注意拐个弯,使用创建的写法。其他的方法注意下文立介绍,还有一个思路是使用下载插件。后端要注意头部要加东西。
这里还需要整理一下,有点乱
https://www.cnblogs.com/purple1/p/9106346.html
https://www.cnblogs.com/zhangycun/p/10287457.html
文件下载写成A标签格式,但是部分格式(jpg、txt)等根据浏览器属性会直接打开,设置download属性,可以使文件不直接预览而是弹出另存为弹窗。但是在IE上不支持download属性,那么IE前台怎么处理这个问题,必须通过后台代码处理
另外可以使用请求的方式下载
https://www.jianshu.com/p/a81c68c15fbd
也可以使用表单的方式下载
这个是二进制流文件,没有url的时候的解决方案
https://www.jb51.net/article/144771.htm
重要的地方
https://www.cnblogs.com/zjdxr-up/p/10145565.html
不推荐使用window.location.href这种方式来下载文件,会引起不必要的麻烦。 在项目里通常在document中添加一个,下载完再移除就可以了。 这里有个示意代码,typescript写的。
这里提到了部分问题,解决方式是在response头部加上点东西download
https://ask.csdn.net/questions/324245
let blob: Blob = new Blob([data], {
type: "application/msword"
});
let url: string = URL.createObjectURL(blob);
let link: HTMLElement = document.createElement('a');
link.setAttribute("href", url);
link.setAttribute("download", `word.docx`);
link.style.visibility = 'hidden';
document.body.appendChild(link);
link.click();
document.body.removeChild(link);