jsp中实现压缩文件下载

这篇博客展示了如何在jsp中实现压缩文件的下载,通过创建一个包含中文字符和数字的data.txt文件,将其打包成导出数据.rar,并设置正确的响应头以触发浏览器的下载。博主在解决文件下载时遇到的乱码问题时,发现是由于服务器缺少rar文件的MIME类型映射,通过在web.xml中添加相应配置解决了问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

jsp中实现压缩文件下载

  1. <%@ page language="java" import="java.io.*,java.util.zip.*" pageEncoding="GBK"%>
  2.  
  3. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  4. <html>
  5. <head>
  6. <meta http-equiv="Content-Type" content="text/html; charset=GBK" />
  7. <title>File download!</title>
  8. </head>
  9. <body>
  10. <%
  11.  response.setContentType("unknown");
  12.  String fileName =java.net.URLEncoder.encode("导出数据.rar","UTF-8");
  13.  response.setHeader("Content-disposition","attachment; filename="+fileName);
  14.  try
  15.  {
  16.  OutputStream os = response.getOutputStream();
  17.  ZipOutputStream zos = new ZipOutputStream(os);
  18.  ZipEntry entry = new ZipEntry("data.txt");
  19.  zos.putNextEntry(entry);
  20.  int number;
  21.  for(int i=0;i<15;i++)
  22.  {
  23.  byte[] buffer = ("中文"+i+System.getProperty("line.separator")).getBytes();
  24.  zos.write(buffer,0,buffer.length);
  25.  }
  26.  zos.closeEntry();
  27.  zos.close();
  28.  }catch(IOException e)
  29.  {
  30.  out.println(e);
  31.  }
  32. %>
  33. </body>
  34. </html>

程序将一些中文字符和数字写入data.txt中并打包为导出数据.rar并弹出窗口供浏览者下载. 程序运行时开始总是显示一些乱码无法排除,在同事的帮助下 才知道是mime类型作怪, 原来服务器上web.xml没有禁止对于rar文件的显示,编辑web.xml添加以下内容即可:

  1. <mime-mapping>
  2.  <extension>rar</extension>
  3.  <mime-type>application/rar</mime-type>
  4.  </mime-mapping>

 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值