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";
    }

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

    时间,请带我像一条小溪流般,安静地流淌,汇入爱的海洋。
  • 相关阅读:
    与ORA-28000: the account is locked-的解决办法
    Oracle建库
    批量将PowerDesigner中表字段由小写变成大写
    MVC5 action 返回JavaScript代码,未执行弹框,出现下载文件或是返回的JavaScript内容 的问题
    sql实现子查询
    经纬度计算是否在圆形内,是否在矩形内,是否在多边形内方法
    网站模板地址及CSS样式网站
    web前端学习笔记
    spring get方法 中文(UTF-8)乱码
    OpenLayers 笔记
  • 原文地址:https://www.cnblogs.com/1246447850qqcom/p/3939362.html
Copyright © 2011-2022 走看看