我有一个名为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();
%>
请指导我
答案 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中。