为什么下载后的文件会被包装成html文件
xdlq 2005-06-28 05:04:59 通过struts的action传递一个文件到attrubute,在客户端jsp页面中取出此文件下载,jsp页面如下:
<%@ page contentType="text/html; charset=GBK" %>
<%@ page import="java.io.*" %>
<%@ page import="javax.servlet.ServletOutputStream"%>
<%
try {
File file = (File) request.getAttribute("file");
String name=file.getName();
response.reset();
response.setContentType("bin");
//设置文件大小及名称
response.setHeader("Content-Length", new Long(file.length()).toString());
response.setHeader("Content-Disposition", "attachment; filename="+new String(name.getBytes(),"iso8859-1"));
synchronized(out) {
FileInputStream reader=new FileInputStream(file);
out.clearBuffer();
int line=0;
while ((line=reader.read()) !=-1) {
out.write(line);
}
reader.close();
}
}
catch(IOException e) {
}
%>
可是下载得到的文件总是在原文件的基础上加上<html><head> <title>??????????</title>等html标记,而文件的实质内容被放到body里面,这样导致文件无法被打开,请问有哪位老兄知道原因和解决方法?