Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/371.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/spring-boot/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用Java在heroku/docker中创建临时目录?_Java_Spring Boot_Docker_Heroku_Temp - Fatal编程技术网

如何使用Java在heroku/docker中创建临时目录?

如何使用Java在heroku/docker中创建临时目录?,java,spring-boot,docker,heroku,temp,Java,Spring Boot,Docker,Heroku,Temp,我试图创建一个临时文件,生成一个文件名,然后保存一个多部分文件。我使用的是Spring Boot,下面的代码在本地运行。但在heroku或docker中,它抛出的是FileNotFoundException;那么,如何在docker/heroku中创建一个临时目录并在该临时目录中保存一个文件呢或者将多部分文件保存到服务器中的临时文件夹的最佳方法是什么?有人可以帮我吗?提前谢谢 File tempDirectory = new File(new File(System.getProperty(&q

我试图创建一个临时文件,生成一个文件名,然后保存一个多部分文件。我使用的是Spring Boot,下面的代码在本地运行。但在heroku或docker中,它抛出的是
FileNotFoundException
;那么,如何在docker/heroku中创建一个临时目录并在该临时目录中保存一个文件呢或者将
多部分
文件保存到服务器中的临时文件夹的最佳方法是什么?有人可以帮我吗?提前谢谢

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();
在我这边完全可以。你可能遇到的唯一问题是

String filePath = new File(tempDirectory.getAbsolutePath() + "/temp.exe").getAbsolutePath();
这不会在您创建的临时目录中创建文件。如果要保存在上述目录中,它只返回绝对路径。这可能是您遇到“未找到”错误的原因。尝试使用

file.transferTo(wherefileneedstobesavedlocation);

这可能与实际未创建的文件有关吗?也许是文件创建问题?另外,是否会阻止使用“.exe”扩展名创建文件?我对您的
temp.exe
感到困惑。最新的Heroku堆栈是Ubuntu20。Linux不理解
.exe
文件。尝试打印出
tempDirectory
,查看路径是否存在,或者您可以调整
Procfile
并添加
-Djava.io.tmpdir=\tmp
。将
mkdir()
更改为
mkdirs()
,这样如果缺少父目录,它也会创建父目录。您已经向代码展示了如何获取
filePath
字符串,但如何在系统上创建文件。它在本地工作,所以应该有代码。非常感谢您的回答和您的时间。
file.transferTo(wherefileneedstobesavedlocation);