有没有简单的方法从NodeRef返回File对象?我正在将节点转换为临时文件并且它可以工作,但它似乎不太实用。这是我的代码:
public File getTempCopyAsFile() throws IOException{
File tempFile = TempFileProvider.createTempFile("temp_"+this.getDocName(), this.getDocExtension());
try (InputStream is = this.getReader().getContentInputStream()){
FileUtils.copyInputStreamToFile(is, tempFile);
}
return tempFile;
}
public ContentReader getReader() {
return contentService.getReader(nodeRef, ContentModel.PROP_CONTENT);
}
public String getName() {
return (String) nodeService.getProperty(nodeRef, ContentModel.PROP_NAME);
}
public String getDocExtension() {
return "." + FilenameUtils.getExtension(this.getName());
}
public String getDocName() {
return FilenameUtils.removeExtension(this.getName());
}
答案 0 :(得分:1)
最简单的方法是use ContentService to get a ContentReader节点。完成后,请拨打ContentReader.getContent(File),来自javadocs:
从存储库直接获取文件
的内容所有资源都将自动关闭。
参数: file - 要将内容写入的文件 - 它将被覆盖
虽然内容将存储在内容仓库中的磁盘上,但建议不要访问原始文件。安全的方法是创建一个Temp文件,然后让ReferenceError: FormatLongNumber is not defined
将节点的内容发送到它中