【问题标题】:How to return mulitple PDF files from RESTful service to Javascript client?如何将多个 PDF 文件从 RESTful 服务返回到 Javascript 客户端?
【发布时间】:2012-09-24 18:46:16
【问题描述】:

有谁知道如何将单个对象中的一系列 PDF 文件从 RESTful WebService 返回到 Javascript 客户端?

我尝试将 JSON 对象中的 PDF 作为字节数组返回,但这似乎不起作用,或者我对 JS 端的字节数组做错了。

【问题讨论】:

标签: javascript jquery json pdf jax-ws


【解决方案1】:

首先,您需要对二进制文件(您的 pdf 文件)进行编码。 base 64 编码旨在使二进制数据能够通过非 8 位干净的传输层进行传输。

我建议你创建一个函数来返回一个文档并返回一个 json 对象 使用文件的一些属性(名称、扩展名、日期、...等..、内容)并在 json 对象的内容字段中,只需将您从应用 base64 编码函数获得的 base64 字符串放到pdf文件。通过这种方式,您可以(在客户端)解码 这个字符串并没有任何问题地获取原始文件。

Base64 编码的数据比原始数据多占用大约 33% 的空间。

因此,我建议您在每次调用 RESTful Web 服务时只返回一个文档。因为 pdf 文件可以很小,但也可以很大,在响应 json 对象上组合多个文档可能会使您的传输非常繁重。但这取决于你。

【讨论】:

  • 我只用 1 个 PDF 文件尝试了您的建议,但我没有任何运气。我似乎无法在客户端正确解码它。我尝试在服务器端获取 PDF 并将其编码为 base64 字节数组 (byte[]) 和字符串。有什么建议么?你做过类似的事情吗?
  • 是的,我为一家工作的公司做了一个安静的网络服务,我用它来发送一个使用 base64 编码的 jpg 文件。一切正常。您为什么不尝试获取在客户端上收到的字符串并尝试在单独的工具上对其进行解码,并查看至少您收到的字符串是否正确并且问题出在您用于解码的函数内部字符串。我可以给你真正的样本,但在 php 中,我担心你使用的是 java 或 .net。
  • 是的,我在服务器端使用 Java。因此,经过一些调整,我收到的字符串是正确的,但我认为这对于 PDF 是不可能的,只有图像,根据这个链接link。我一直在使用 pdfObject.js,它可以很好地获取 URL,但似乎无法处理字符串或字节数组中的 PDF。我想我可能不得不使用 Ohgodwhy 的方法,但使用 pdfObject.js 而不是 iframe。谢谢。
猜你喜欢
  • 2017-02-14
  • 1970-01-01
  • 2022-01-13
  • 1970-01-01
  • 2016-05-18
  • 1970-01-01
  • 1970-01-01
  • 2021-02-15
  • 1970-01-01
相关资源
最近更新 更多