博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java 下载文件
阅读量:5957 次
发布时间:2019-06-19

本文共 1307 字,大约阅读时间需要 4 分钟。

 //servlet下载:根据请求url。拦截路径,读取服务器文件流,返回给浏览器,

 // 其中请求url可以通过request对象的getRequestURI()获取文件名(用来重命名文件)
public class DownloadServlet extends HttpServlet
{

 @Override

 protected void doGet(HttpServletRequest req, HttpServletResponse resp)
   throws ServletException, IOException
 {
  doPost(req, resp);
 }

 @Override

 protected void doPost(HttpServletRequest req, HttpServletResponse resp)
   throws ServletException, IOException
 {

  String url = req.getRequestURI();

  String resFileName = url.substring(url.lastIndexOf("/")+1,url.length());
  String realPath = req.getRealPath("/");
  String exeFile = realPath + "download/test.exe";
  String kipFile = realPath + "download/exe";
  PrintWriter out = resp.getWriter();
  if (Tools.checkFileExist(exeFile, kipFile))
  {
   try
   {
    File f = new File(exeFile);
    BufferedInputStream buffer = new BufferedInputStream(
      new FileInputStream(f));
    byte[] bt = new byte[1024];
    int len = 0;
    resp.reset();

    resp.setContentType("application/x-msdownload");

    resp.setHeader("Content-Disposition", "attachment;filename="
      + resFileName);
    OutputStream out1 = resp.getOutputStream();
    while ((len = buffer.read(bt)) > 0)
    {
     out1.write(bt, 0, len);
    }
    buffer.close();
    out1.close();
                                
   } catch (Exception e)
   {
    System.out.println("read downloadfile error:" + e);
   }

  } else

  {
   out.println("<center>file is not exsit!</center>");
  }
 }

}

转载地址:http://kkexx.baihongyu.com/

你可能感兴趣的文章
面向服务的架构SOA
查看>>
lnmp+lamp编译后,编译参数查看
查看>>
OEL7.2下Oracle11.2.0.4RAC部署
查看>>
nagios安装与配置
查看>>
RedHat 设置IP、网关、DNS
查看>>
MYSQL 主从复制读写分离实现
查看>>
linux更改语言
查看>>
centos7 修改mac地址
查看>>
获取Java项目根目录
查看>>
我的友情链接
查看>>
堆排序
查看>>
<script>标签的加载解析执行
查看>>
恢复rm删除的文件(ext3
查看>>
我的友情链接
查看>>
账户注销完自动登录账户,并且不需要再点击屏幕的账户头像
查看>>
【Interface&navigation】按钮(29)
查看>>
我要学python之装饰器
查看>>
Extjs4.x (MVC)Controller中refs以及Ext.ComponentQuery解析
查看>>
消息最终一致性解决方案之RabbitMQ实现
查看>>
记录:网络通信协议中的TCP/IP与UDP
查看>>