将 PDF 文档从远程服务器加载到 base64 编码数据中

Posted

技术标签:

【中文标题】将 PDF 文档从远程服务器加载到 base64 编码数据中【英文标题】:Load a PDF document from remote server into base64 encoded data 【发布时间】:2013-06-12 20:14:05 【问题描述】:

是否有任何选项可用于从网站加载 PDF(例如 http://mywebsite.com/mydoc.pdf)并使用 javascript 将其读入 base64(或)二进制数据。由于跨域脚本限制,XHR(ajax)请求对我没有帮助。 html5 FileReader API 与用户文件 input 控件一起使用。我想不出任何其他选择。任何想法都非常感谢。谢谢。

【问题讨论】:

服务器是你控制的吗? 不幸的是我没有固定的服务器来控制。我的 HTML(仅限)应用程序假设从任何给定的 Web 链接加载 PDF 【参考方案1】:

正如您所说,跨域限制会阻止您从其他域下载任何旧文件。有几种方法可以解决这个问题。

如果您从中下载的服务器支持 CORS 请求,那么您应该能够将文件作为二进制对象下载。如果您从您控制的服务器下载,则可以对其进行更新以支持 CORS 请求。

如果原始服务器上的 CORS 支持不是一个选项,那么您可以在服务器上创建一个代理来下载 PDF 并将其传递给客户端。将它托管在同一个域上,或者确保它支持来自您的域的 CORS 请求。

【讨论】:

谢谢。不幸的是,我没有固定的服务器来控制。我的 HTML(仅限)应用程序假设从任何给定的 Web 链接加载 PDF。我在哪里可以找到有关此代理方法的更多详细信息/示例? 纯客户端的唯一方法是使用不受相同安全策略约束的 Chrome 扩展程序之类的东西。或者您可以找到一些可以充当 CORS 代理的云服务。我用快速的谷歌找不到任何东西,但它可能是那种类型的东西。或者,您可以在 Heroku 等服务上免费托管一些东西。 谢谢。这是有道理的。

以上是关于将 PDF 文档从远程服务器加载到 base64 编码数据中的主要内容,如果未能解决你的问题,请参考以下文章

从远程 url 加载 pdf 以作为 Mandrill 附件发送

在app android中上传pdf或txt并转换为base64

Pdf与Base64编码之间的转换

从 javascript 触发 base64 编码 PDF 的打印预览

Base64 字符串编码的图像未加载到输出 PDF (TuesPechkin / Wkhtmltopdf)

vue.base64转pdf加载太慢