VUE中文件的下载和上传

236 阅读1分钟

VUE中文件的下载和上传,其实主要是上传,上传是有组件可以去写的,但是下载就直接使用a标签就好。a标签写的时候注意拐个弯,使用创建的写法。其他的方法注意下文立介绍,还有一个思路是使用下载插件。后端要注意头部要加东西。
这里还需要整理一下,有点乱

www.cnblogs.com/purple1/p/9…

www.cnblogs.com/zhangycun/p…

文件下载写成A标签格式,但是部分格式(jpg、txt)等根据浏览器属性会直接打开,设置download属性,可以使文件不直接预览而是弹出另存为弹窗。但是在IE上不支持download属性,那么IE前台怎么处理这个问题,必须通过后台代码处理
另外可以使用请求的方式下载
www.jianshu.com/p/a81c68c15…
也可以使用表单的方式下载

这个是二进制流文件,没有url的时候的解决方案

www.jb51.net/article/144…

重要的地方
www.cnblogs.com/zjdxr-up/p/…


不推荐使用window.location.href这种方式来下载文件,会引起不必要的麻烦。 在项目里通常在document中添加一个,下载完再移除就可以了。 这里有个示意代码,typescript写的。


这里提到了部分问题,解决方式是在response头部加上点东西download
ask.csdn.net/questions/3…

  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);
  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);
  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);