javascript - 将 base64 数据字符串转换为 PDF 文件以便从 API 下载 - NodeJS
问题描述
我配置了一个 nodeJS API,它连接到另一个 API 并检索一个数据对象,它是一个 Base64 字符串。
调用 API 端点的客户端需要下载由 base64 数据制作的 PDF 文件。
数据应该如何返回给客户端,以便可以从浏览器转换/提示下载?这应该在客户端还是服务器端完成?
解决方案
Base64 是 HTML 安全的,当您想要将数据 URL 创建为链接时,它具有实用性。这将允许预加载 PDF,以便用户在单击链接时立即获取文件。
但是,您只是想直接下载它,所以只需在服务器端将其转换为二进制,以减少与 base64 相关的网络开销,并保持客户端尽可能轻(加载更少的数据,使用更少的资源)。
只需在响应中设置正确的内容类型(application/pdf
如果您希望使用浏览器的 PDF 插件打开 PDF,或者application/octet-stream
如果您想触发定期下载)然后只需使用经典的<a href=...
. 您还可以执行以下操作之一:
- 将
download
属性设置为客户端的链接。 Content-Disposition: attachment
在服务器端设置标头。
推荐阅读
- ruby - RSpec 嵌套 if 函数
- sql - netezza 或 SQL 中是否有任何函数可以根据值索引将值作为行返回?
- javascript - 等待 redux 存储的特定属性从 React 组件外部更新
- java - 类型完全匹配,但 Java 编译器不会为 List 编译
? - python - 如何使用行为框架中的夹具保持 selenium webdriver 作为 before_tag 钩子的一部分运行?
- php - 用户提交答案后,有没有办法将测试表的答案复制到 pdf 中?
- sql - 在 SQL 的列中查找字符串/整数中的最大值
- r - 从数据框列表中提取并组合具有相同名称的列
- python - 如何仅使用用户输入移动矩阵中的项目?
- ios - MPSMatrixVectorMultiplication 太慢了