将多形式零件铸造到文件中

Casting multiform part to a file

我有一个托管 bean。 HTML/JSF 页面将压缩文件作为部分发送。我需要从中提取内容,但为此我需要它是 File。是否可以像下面这样将 Part 转换为 File,然后将其视为普通 zip 文件?

Part xmlFile;

public void myMethod()
{
File zippedFile = (File) getXmlFile();
....
}

如果没有,我该怎么做?我在网上看过,但是资料好像很少。

您可以创建一个临时文件:

File aFile = File.createTempFile(PREFIX, SUFFIX);

并将 Part 有效负载的内容写入该文件:

try (InputStream input = part.getInputStream()) {
    Files.copy(input, aFile.toPath(), StandardCopyOption.REPLACE_EXISTING);
}

您可能还想利用 Filedelete()deleteOnExit() 来清理资源。请记住 deleteOnExit() 仅在 JVM 退出时调用,这可能不是您想要的。