【发布时间】:2021-07-23 09:14:14
【问题描述】:
我正在尝试创建一个临时文件并生成一个文件名,然后保存一个多部分文件。我正在使用 Spring Boot,以下代码在本地工作。但在 heroku 或 docker 中,它正在抛出 FileNotFoundException;那么如何创建一个临时目录并将文件保存在 docker/heroku 的该临时目录中呢? 或者将multipart 文件保存到服务器中的临时文件夹的最佳方法是什么? 有人可以帮助我吗?提前致谢。
File tempDirectory = new File(new File(System.getProperty("java.io.tmpdir")), "files");
if (!tempDirectory.exists()) {
tempDirectory.mkdir();
}
String filePath = new File(tempDirectory.getAbsolutePath() + "/temp.pdf").getAbsolutePath();
【问题讨论】:
-
可能与实际上没有创建文件有关吗?也许是文件创建问题?另外,是否会阻止使用“.exe”扩展名创建文件?
-
我对你的
temp.exe感到困惑。最新的 Heroku 堆栈是 Ubuntu 20。Linux 不理解.exe文件。尝试打印出tempDirectory并查看路径是否存在,或者您可以调整您的Procfile并添加-Djava.io.tmpdir=\tmp。将mkdir()更改为mkdirs(),这样如果缺少父目录,它也会创建父目录。您已经展示了如何获取filePath字符串的代码,但是您如何在系统上创建文件。它在本地工作,所以应该有它的代码。
标签: java spring-boot docker heroku temp