将多形式部件转换为文件

时间:2015-05-07 03:29:18

标签: java html jsf zip multipartform-data

我有一个托管bean。 HTML / JSF页面将压缩文件作为零件发送。我需要从中提取内容,但要做到这一点,我需要将它作为文件。是否可以将Part转换为File,如下所示,然后将其视为普通的zip文件?

Part xmlFile;

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

如果没有,我该怎么做呢?我在网上看过,但似乎信息很少。

1 个答案:

答案 0 :(得分:1)

您可以创建临时文件:

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

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

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

您可能还想使用File delete()deleteOnExit()来清理资源。请记住,只有在JVM退出时才会调用deleteOnExit(),这可能不是您想要的。