java文件正在下载,但没有任何内容
我有一个名为output的文本文件。将在D:/MPI中生成的txt。我必须下载这个文件,但下载的文件是完全空白的,没有任何内容。我想下载文件输出。文件夹D:/MPI中的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 楼答案
您正在开发一个web应用程序,文件将由web服务器提供。因此,尝试使路径相对于应用程序的上下文,而不是使用绝对路径
尝试使用ServletContext#getRealPath()方法,该方法返回一个字符串,其中包含给定虚拟路径的实际路径
将
output.txt
文件放在项目的war/webapp文件夹中,然后尝试以下代码:注意:总是尽量避免使用Scriplet而不是使用JSTL。在本例中,将Servlet中的代码从JSP中移出。将JSP视为UI,并始终将业务和数据库逻辑保留在Servlet中