将多形式零件铸造到文件中
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);
}
您可能还想利用 File
的 delete()
或 deleteOnExit()
来清理资源。请记住 deleteOnExit()
仅在 JVM 退出时调用,这可能不是您想要的。
我有一个托管 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);
}
您可能还想利用 File
的 delete()
或 deleteOnExit()
来清理资源。请记住 deleteOnExit()
仅在 JVM 退出时调用,这可能不是您想要的。