zoukankan      html  css  js  c++  java
  • vue+springboot文件下载

    复制代码
    //vue element-ui
    <el-button size="medium" type="primary" @click="download">导出</el-button>
      //js
      downLoad(){
         window.location.href="/api/downLoad";
      },
     
    复制代码
    复制代码
    //后台java

    import java.io.File;
    import java.io.FileInputStream;
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.OutputStream;
    import java.io.UnsupportedEncodingException;
    import java.util.HashMap;
    import java.util.Map;

    import javax.servlet.http.HttpServletResponse;

    import org.apache.commons.io.IOUtils;
    import org.slf4j.Logger;
    import org.slf4j.LoggerFactory;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RequestMethod;
    import org.springframework.web.bind.annotation.RestController;


    @RestController
    public class DownLoadFile {

      private static Logger log = LoggerFactory.getLogger(DownLoadFile.class);

      @RequestMapping(value = "/downLoad", method = RequestMethod.GET)
      public static final String downLoad(HttpServletResponse res) throws UnsupportedEncodingException {
        Map<String, Object> reMap = new HashMap<>();
        //文件名 可以通过形参传进来
        String fileName = "t_label.txt";
        //要下载的文件地址 可以通过形参传进来
        String filepath = "f:/svs/" + fileName;

        OutputStream os = null;
        InputStream is = null;
        try {
          // 取得输出流
          os = res.getOutputStream();
          // 清空输出流
          res.reset();
          res.setContentType("application/x-download;charset=GBK");
          res.setHeader("Content-Disposition",
            "attachment;filename=" + new String(fileName.getBytes("utf-8"), "iso-8859-1"));
          // 读取流
          File f = new File(filepath);
          is = new FileInputStream(f);
          if (is == null) {
            reMap.put("msg", "下载附件失败");
          }
          // 复制
          IOUtils.copy(is, res.getOutputStream());
            res.getOutputStream().flush();
          } catch (IOException e) {
            reMap.put("msg", "下载附件失败,error:" + e.getMessage());
          }
          // 文件的关闭放在finally中
          finally {
            try {
              if (is != null) {
                is.close();
              }
            } catch (IOException e) {
              log.error(e.toString());
            }
            try {
              if (os != null) {
                os.close();
              }
            } catch (IOException e) {
              log.error(e.toString());
            }
          }
          String str = JsonUtil.map2Json(reMap);
          return str;
        }

    }

     转自:https://www.cnblogs.com/xuchao0506/p/12681480.html

  • 相关阅读:
    2020年目标检测大盘点 | ECCV大盘点(附论文&代码下载)
    Transformer再下一城!low-level多个任务榜首被占领,北大华为等联合提出预训练模型IPT
    opencv------->>>>>>打印点
    生信工具
    生物信息学练习1-综合使用软件-2
    生物信息学练习1-综合使用软件
    操作指南之下载数据
    安装生物信息学软件-HUMAnN2
    多样性指数介绍
    统计学基础知识-欧式距离与其他
  • 原文地址:https://www.cnblogs.com/javalinux/p/14807391.html
Copyright © 2011-2022 走看看