<%
// 有时候用户想要下载文件,但是这个文件类型在系统中与浏览器关联了,结果就变成在IE中打开。
// 常见的有word, excel, pdf等。因此将文件转成数据流让浏览器不知道其文件类型而达到下载的目的。
// example:
// <a href="download.jsp?path=img/&name=test.gif">download image</a>
String root = getServletContext().getRealPath("/");
String path = request.getParameter("path");
String name = request.getParameter("name");
response.setContentType("unknown");
// 注意,如果去掉下面一行代码中的attachment; 那么也会使IE自动打开文件。
response.addHeader("Content-Disposition", "attachment; filename=/"" + name + "/"");
try
{
java.io.OutputStream os = response.getOutputStream();
java.io.FileInputStream fis = new java.io.FileInputStream(root + path + name);
byte[] b = new byte[1024];
int i = 0;
while ( (i = fis.read(b)) > 0 )
{
os.write(b, 0, i);
}
fis.close();
os.flush();
os.close();
}
catch ( Exception e )
{}
%>
本文介绍了一种使用JSP实现文件强制下载的方法,通过设置响应头为'unknown'并添加'Content-Disposition'来避免浏览器直接打开某些类型的文件(如Word、Excel或PDF),确保这些文件能够被下载而不是在浏览器中打开。

1171

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



