- <%@ page language="java" import="java.io.*,java.util.zip.*" pageEncoding="GBK"%>
-
- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
- <html>
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=GBK" />
- <title>File download!</title>
- </head>
- <body>
- <%
- response.setContentType("unknown");
- String fileName =java.net.URLEncoder.encode("导出数据.rar","UTF-8");
- response.setHeader("Content-disposition","attachment; filename="+fileName);
- try
- {
- OutputStream os = response.getOutputStream();
- ZipOutputStream zos = new ZipOutputStream(os);
- ZipEntry entry = new ZipEntry("data.txt");
- zos.putNextEntry(entry);
- int number;
- for(int i=0;i<15;i++)
- {
- byte[] buffer = ("中文"+i+System.getProperty("line.separator")).getBytes();
- zos.write(buffer,0,buffer.length);
- }
- zos.closeEntry();
- zos.close();
- }catch(IOException e)
- {
- out.println(e);
- }
- %>
- </body>
- </html>
程序将一些中文字符和数字写入data.txt中并打包为导出数据.rar并弹出窗口供浏览者下载. 程序运行时开始总是显示一些乱码无法排除,在同事的帮助下 才知道是mime类型作怪, 原来服务器上web.xml没有禁止对于rar文件的显示,编辑web.xml添加以下内容即可:
- <mime-mapping>
- <extension>rar</extension>
- <mime-type>application/rar</mime-type>
- </mime-mapping>
- <%@ page language="java" import="java.io.*,java.util.zip.*" pageEncoding="GBK"%>
- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
- <html>
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=GBK" />
- <title>File download!</title>
- </head>
- <body>
- <%
- response.setContentType("unknown");
- String fileName =java.net.URLEncoder.encode("导出数据.rar","UTF-8");
- response.setHeader("Content-disposition","attachment; filename="+fileName);
- try
- {
- OutputStream os = response.getOutputStream();
- ZipOutputStream zos = new ZipOutputStream(os);
- ZipEntry entry = new ZipEntry("data.txt");
- zos.putNextEntry(entry);
- int number;
- for(int i=0;i<15;i++)
- {
- byte[] buffer = ("中文"+i+System.getProperty("line.separator")).getBytes();
- zos.write(buffer,0,buffer.length);
- }
- zos.closeEntry();
- zos.close();
- }catch(IOException e)
- {
- out.println(e);
- }
- %>
- </body>
- </html>
程序将一些中文字符和数字写入data.txt中并打包为导出数据.rar并弹出窗口供浏览者下载. 程序运行时开始总是显示一些乱码无法排除,在同事的帮助下 才知道是mime类型作怪, 原来服务器上web.xml没有禁止对于rar文件的显示,编辑web.xml添加以下内容即可:
- <mime-mapping>
- <extension>rar</extension>
- <mime-type>application/rar</mime-type>
- </mime-mapping>
这篇博客展示了如何在jsp中实现压缩文件的下载,通过创建一个包含中文字符和数字的data.txt文件,将其打包成导出数据.rar,并设置正确的响应头以触发浏览器的下载。博主在解决文件下载时遇到的乱码问题时,发现是由于服务器缺少rar文件的MIME类型映射,通过在web.xml中添加相应配置解决了问题。
1034

被折叠的 条评论
为什么被折叠?



