gpt4 book ai didi

java - linux下如何获取下载文件路径?

转载 作者:太空宇宙 更新时间:2023-11-04 04:09:51 25 4
gpt4 key购买 nike

我已经使用 spring 和 hibernate 完成了 java web 应用程序的开发。在我的应用程序中,有一个下载功能。该函数在windows环境下运行良好。但是当我在 Linux 环境上部署并运行该应用程序时,使用 Tomcat 作为服务器,该函数返回零字节文件。文件类型为 Excel (xls)。但浏览器将其返回为 pdf 文件。

下载功能失败:

Download Failed

Linux 上的 Xls 文件路径: xls

这是代码:

@RequestMapping("downloadXlsTemplate")
public String downloadTemplate(HttpServletRequest request, HttpServletResponse response) {

try {

String filename = "Template.xls";

File onLinux = new File("/opt/tomcat7/webapps/xls/" + filename);

response.setContentType("application/vnd.ms-excel");
response.addHeader("Content-Disposition", "attachment; filename=" + filename);
response.setContentLength((int) onLinux.length());

InputStream inputStream = new FileInputStream(onLinux);

OutputStream responseOutputStream = response.getOutputStream();
int bytes;
while((bytes = inputStream.read()) != -1) {
responseOutputStream.write(bytes);
}
inputStream.close();
responseOutputStream.close();

} catch (IOException e) {
e.printStackTrace();
}
return null;
}

我尝试过各种方法,但都没有成功。我将非常感谢任何想法、帮助或解决方案

问候尤努斯

最佳答案

您面临的问题是文件权限问题。该文件归“root”所有,您的 tomcat 在其他用户上运行。

尝试将文件移动到 tomcat 用户可以访问的共享位置。尝试 /tmp 位置或任何其他共享位置。

关于java - linux下如何获取下载文件路径?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19705654/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com