将文档(PDF)导入到Java支持的webscript中的Alfresco存储库时,我遇到了问题。我正在使用ContentService的编写器。 如果我使用
ContentWriter writer = ContentService.getWriter(nodeRef, ContentModel.PROP_CONTENT, true);
writer.setEncoding("UTF-8");
writer.setMimetype("application/pdf");
writer.putContent(new String(byte []) );
或
writer.putContent(new String(byte [], "UTF-8") );
我的文档无法预览(我看到空白的PDF文件,尝试过几个小的PDF文件,不知道在其他/大文件的情况下会发生什么)。
但是如果我使用另一个以File作为参数的putContent
方法,我将成功导入文档。
writer.setEncoding("UTF-8");
writer.setMimetype("application/pdf");
writer.putContent(File);
我不想从磁盘导入文件,因为我将文件作为Base64编码的字符串,但我不知道我错过了什么。
答案 0 :(得分:4)
您可以使用InputStream
作为ContentWriter::putContent
的参数。因此,您将阻止String转换为字节数组(反之亦然),这会导致编码困难。
writer.putContent(new ByteArrayInputStream(Base64.decodeBase64("yourBase64EncodedString")))