vue,axios加springboot的zip文件下载

  • 1.vue这边 注意 get请求 吧method:"get"   然后把 data换成 params
  • axios({
  •         method: "POST",
  •         url: "/api/create/create",
  •         data: {
  •           database: this.formInline.database,
  •           ip: this.formInline.ip,
  •           port: this.formInline.port,
  •           username: this.formInline.username,
  •           password: this.formInline.password
  •         },
  •         responseType: "blob"
  •       })
  •         .then(response => {
  •           let blob = new Blob([response.data], { type: "application/zip" });
  •           let url = window.URL.createObjectURL(blob);
  •           const link = document.createElement("a"); // 创建a标签
  •           link.href = url;
  •           link.download = "code"; // 重命名文件
  •           link.click();
  •           URL.revokeObjectURL(url); // 释放内存
  •         })
  •         .catch(error => this.$message.error(error));
  • 2.springboot这边:
  • public void add(HttpServletResponse response) throws Exception {
    String zipFile = CompressUtil.zipFile(new File("D:\\src"), "zip");
    response.setContentType("APPLICATION/OCTET-STREAM");
    response.setHeader("Content-Disposition","attachment; filename=code.zip");
    try {
        //下载到浏览器
        OutputStream out = response.getOutputStream();
        File ftp = ResourceUtils.getFile(zipFile);
        InputStream in = new FileInputStream(ftp);
    
        // 循环取出流中的数据
        byte[] b = new byte[100];
        int len;
        while ((len = in.read(b)) !=-1) {
            out.write(b, 0, len);
        }
        in.close();
        out.close();
    } catch (Exception e) {
        e.printStackTrace();
    }  }
  •  
  • 注意linux下面和windows下面的文件路径问题
  • 然后可下载的类型type: "application/zip"改成
  •     'doc'        => 'application/msword',
        'bin'        => 'application/octet-stream',
        'exe'        => 'application/octet-stream',
        'so'        => 'application/octet-stream',
        'dll'        => 'application/octet-stream',
        'pdf'        => 'application/pdf',
        'ai'        => 'application/postscript',
        'xls'        => 'application/vnd.ms-excel',
        'ppt'        => 'application/vnd.ms-powerpoint',
        'dir'        => 'application/x-director',
        'js'        => 'application/x-javascript',
        'swf'        => 'application/x-shockwave-flash',
        'xhtml'        => 'application/xhtml+xml',
        'xht'        => 'application/xhtml+xml',
        'zip'        => 'application/zip',
        'mid'        => 'audio/midi',
        'midi'        => 'audio/midi',
        'mp3'        => 'audio/mpeg',
        'rm'        => 'audio/x-pn-realaudio',
        'rpm'        => 'audio/x-pn-realaudio-plugin',
        'wav'        => 'audio/x-wav',
        'bmp'        => 'image/bmp',
        'gif'        => 'image/gif',
        'jpeg'        => 'image/jpeg',
        'jpg'        => 'image/jpeg',
        'png'        => 'image/png',
        'css'        => 'text/css',
        'html'        => 'text/html',
        'htm'        => 'text/html',
        'txt'        => 'text/plain',
        'xsl'        => 'text/xml',
        'xml'        => 'text/xml',
        'mpeg'        => 'video/mpeg',
        'mpg'        => 'video/mpeg',
        'avi'        => 'video/x-msvideo',
        'movie'        => 'video/x-sgi-movie',
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值