有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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) 个答案

  1. # 1 楼答案

    您正在开发一个web应用程序,文件将由web服务器提供。因此,尝试使路径相对于应用程序的上下文,而不是使用绝对路径

    尝试使用ServletContext#getRealPath()方法,该方法返回一个字符串,其中包含给定虚拟路径的实际路径

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

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

    注意:总是尽量避免使用Scriplet而不是使用JSTL。在本例中,将Servlet中的代码从JSP中移出。将JSP视为UI,并始终将业务和数据库逻辑保留在Servlet中