文件下载但没有任何内容

时间:2014-06-07 11:40:42

标签: java jsp servlets download

我有一个名为output.txt的文本文件,它将在D:/ MPI中生成。我必须下载此文件,但下载的文件是完全空白的,没有任何内容。我想下载文件夹D:/ MPI中的文件output.txt。这是我的JSP代码

<%
String filePath = "D://MPI//output.txt";
String fileName = "outputs";
FileInputStream fileToDownload = new FileInputStream(filePath);
ServletOutputStream output = response.getOutputStream();
response.setContentType("text/plain; charset=utf-8");
response.setHeader("Content-Disposition","attachment; filename="+fileName);
response.setContentLength(fileToDownload.available());
int c;
while((c=fileToDownload.read()) != -1){
out.write(c);
}
output.flush();
output.close();
fileToDownload.close();
%>

请指导我

1 个答案:

答案 0 :(得分:1)

您正在开发Web应用程序,并且将从Web服务器提供文件。因此,尝试相对于应用程序的上下文创建路径,而不是使用绝对路径。

尝试使用ServletContext#getRealPath()方法返回包含给定虚拟路径的实际路径的String。

output.txt文件放在项目的war / webapp文件夹中,然后尝试下面的代码:

String filePath = request.getServletContext().getRealPath("output.txt");

注意:始终尝试避免 Scriplet 而是使用JSTL。在这种情况下,将此代码从JSP中移出JSP。将JSP视为UI,并始终将业务和数据库逻辑保留在Servlet中。