以编程方式将文件导入 Alfresco(通过 java 支持的网络脚本)

Importing file to Alfresco programatically (through java backed webscript)

我在将文档 (PDF) 导入 java 支持的网络脚本中的 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 文件,不知道 other/larger 文件会发生什么情况)。 但是,如果我使用另一种 putContent 方法,它将 File 作为参数,我将成功导入文档。

writer.setEncoding("UTF-8");
writer.setMimetype("application/pdf");
writer.putContent(File);

我不想从磁盘导入文件,因为我得到的文件是 Base64 编码的字符串,但我不知道我错过了什么。

您可以使用 InputStream 作为 ContentWriter::putContent 的参数。因此,您将阻止字符串到字节数组(反之亦然)的转换,这会导致编码困难。

writer.putContent(new ByteArrayInputStream(Base64.decodeBase64("yourBase64EncodedString")))