Java 多部分/表单数据端点是否在服务器上创建临时文件

Java 多部分/表单数据端点是否在服务器上创建临时文件,java,file-upload,jersey,jax-rs,multipartform-data,Java,File Upload,Jersey,Jax Rs,Multipartform Data,我有一个REST端点,它接受多部分/表单数据作为有效负载 然后使用CSVParser(来自apache commons)在服务器上解析该文件 文件是否会自动创建在某个临时目录中,因此需要清理 或者端点是否直接在内存中解析文件,而无需先将其保存在物理磁盘上?上载的文件可能保存在默认的临时目录中。要获取文件夹,可以使用System.getProperty(“java.io.tmpdir”)。或者,如果服务器有,它可以将文件存储到本地服务器的临时目录中。您有权访问服务器代码吗?这完全取决于服务器端的实

我有一个REST端点,它接受多部分/表单数据作为有效负载

然后使用CSVParser(来自apache commons)在服务器上解析该文件

文件是否会自动创建在某个临时目录中,因此需要清理


或者端点是否直接在内存中解析文件,而无需先将其保存在物理磁盘上?

上载的文件可能保存在默认的临时目录中。要获取文件夹,可以使用
System.getProperty(“java.io.tmpdir”)
。或者,如果服务器有,它可以将文件存储到本地服务器的临时目录中。

您有权访问服务器代码吗?这完全取决于服务器端的实现。无论是CXF、Jersey还是其他实现,表单多部分的最终目标通常是某种类型的输入流。如果解析器接收输入流,则很少需要将上载的文件存储在临时目录中


简短回答,除非代码明确地将输入流写入某个临时文件中,否则您无需进行清理,只需正确关闭输入流。

Post-answers您的问题@piy26答案建议了两种可能性,我希望得到一个明确的答案。是的,它会创建一个临时文件。@PaulSamsotha jersey框架会为您清理它吗?如果没有,我们应该如何处理清理工作?服务器是linux。我假设在任何一种情况下,临时目录都会有大小限制,或者由OS/server应用程序自动清理,因此我们不必手动清理它?在Windows中,没有,默认情况下Windows中没有任何打开的工具会自动删除临时文件。不是在关机时,不是在重新启动时,永远不会。但是服务器可能有清理…是的,解析器直接从表单数据读取InputStream:。所以我需要在REST函数的末尾关闭输入流?我使用的是Jersey,端点看起来有点像中的snippet 3(没有
writeToFile
),如果您没有写入文件,那么不,除了关闭InputStream之外,您不需要执行任何清理Jersey框架是否为您关闭InputStream?我看到的代码片段没有关闭InputStream。