从Collection中读取Uint8Array缓冲区并以pdf格式下载

时间:2017-05-29 16:18:12

标签: mongodb pdf meteor

我使用此功能将pdf文件保存在集合中:

Visitor v = new Visitor() {
    @Override
    public void visitChildOne(ChildOne child) {
        System.out.println("Visiting child type 1");
        String someProperty = child.getPropertySpecificToChildOne();
    }
    @Override
    public void visitChildTwo(ChildTwo child) {
        System.out.println("Visiting child type 2");
        int someProperty = child.getPropertySpecificToChildTwo();
    }
    @Override
    public void visitChildThree(ChildThree child) {
        System.out.println("Visiting child type 3");
    }
};
for (Parent p: parentClassList) {
    p.accept(v);
}

如何从集合中再次阅读并提供下载链接,用户可以将该文件作为pdf下载并保存在本地计算机上?

1 个答案:

答案 0 :(得分:0)

当您在MiniMongo集合中看到该文档记录时,它取决于数据类型最终在前端。您要做的是将Uint8Array数据转换为base64编码的数据URL,并在浏览器中获取数据后提供<a href="data:application/pdf;base64,...">Download PDF</a>链接。

Meteor不支持从服务器提供开箱即用的文件,因此您可能必须通过mongo-&gt; minimongo发布/订阅机制发布该文件的blob,然后使用HTML数据-uri API就像我刚刚描述的那样。