本地下载文件可以,可是把代码放到Linux服务器下载下来的是jsp页面内容,下载的Excel文件中的内容则是jsp中展示的内容
相关代码
<%
response.setCharacterEncoding("gb2312");
request.setCharacterEncoding("utf-8");
if (request.getParameter("file") != null) {
OutputStream os = null;
FileInputStream fis = null;
try {
String file = request.getParameter("file");
String dateStr = request.getParameter("targetDate");
//重新拼接符合要求的文件名
file = file+dateStr.replace("/", "")+".xls";
if (!(new File(file)).exists()) {
System.out.println("没有文件");
response.getWriter().write("您要下载的文件不存在!");
response.setHeader("Refresh", "2");
return;
}
System.out.println("文件名为:"+file);
os = response.getOutputStream();
response.setHeader("content-disposition", "attachment;filename=" + new String(file.getBytes("gb2312"),"ISO8859-1" ));
response.setContentType("application/vnd.ms-excel");//此项内容随文件类型而异
byte temp[] = new byte[4 * 1024];
fis = new FileInputStream(file);
int n = 0;
while ((n = fis.read(temp)) != -1) {
os.write(temp, 0, n);
}
} catch (Exception e) {
out.print("出错");
} finally {
if (os != null)
os.close();
if (fis != null)
fis.close();
}
out.clear();
out = pageContext.pushBody();
}