zoukankan      html  css  js  c++  java
  • java用spring实现文件下载

    今天是我第一博客文章,希望写出来的东西能让大家看明白,欢迎大家给我留言。

    html页面:

    <a href="#" onclick="downLoad()" class="download">下载</a>

    我用的ajax像后台发送的请求:

    /**文件下载*/
    function downLoad() {
      window.open(global_param.context_name+'/upload/fileddown');//此处我用ajax实现调用后台方法。
    }

    然后后台具体实现如下:

    /**
    * 文件下载
    */
    @Transactional
    @Override
    public String fileDown(HttpServletResponse response,HttpServletRequest request) throws Exception {
    String projectPath = request.getServletContext().getRealPath("/");//获取项目的根目录
    String path = projectPath+"/resources/execl/赠送分发.xlsx";//获取到文件exec表的位置,这个地址是你需要下载的文件路径,可以跟你自己的情况写
    File file=new File(path);//创建file对象
    String encoderstr = URLEncoder.encode(file.getName(), "UTF-8");//转字符
    response.setHeader("Content-Disposition", "attachment;filename=""+encoderstr + """);//这样转换后可以避免下载的时候是中文字符
    response.addHeader("Content-Length", "" + file.length());
    response.setContentType("application/x-msdownload;");
    response.setCharacterEncoding("UTF-8");
    OutputStream outputStream = new BufferedOutputStream(response.getOutputStream());
    InputStream inputStream = new FileInputStream(file);
    byte[] buffer = new byte[1024];
    int i = -1;
    while ((i = inputStream.read(buffer)) != -1) {
    outputStream.write(buffer, 0, i);
    }
    outputStream.flush();
    outputStream.close(); //关闭文件流很关键
    return "success";
    }

    最后就写完了,希望能帮助到大家!

    时间,请带我像一条小溪流般,安静地流淌,汇入爱的海洋。
  • 相关阅读:
    第一章 新手入门
    Excle生成T层加工ODS层存储过程
    Excel生成建表角本
    数据仓库建模技巧
    算法第四章作业
    删数问题
    算法第三章作业
    第三章上机实践报告
    第二章作业
    Thinkphp6框架学习:($this->error()undefined)Call to undefined method appindexcontrollerAdmin::error()
  • 原文地址:https://www.cnblogs.com/1246447850qqcom/p/3939362.html
Copyright © 2011-2022 走看看