如何从 Kuzzle 插件响应发送 pdf 文件?
How to send pdf file from Kuzzle plugin response?
我使用 Kuzzle 作为移动应用程序和多个网站的所有业务逻辑的后端。
在一个网站上,我需要下载包含多份报告的 PDF。为了保持相同的架构,我想在自定义 Kuzzle 插件中实现这一点。
插件的默认响应包含在默认 HTML 响应中,我如何精确自定义 headers 发送文件?
您可以使用 Request.setResult 方法指定您的 returning 原始负载并修改响应 headers.
然后只需return一个包含文件内容的Buffer
。
async sendPdf (request) {
const file = fs.readFileSync('./file.pdf');
request.setResult(null, {
// Tell Kuzzle that this result will contain a raw payload
raw: true,
headers: {
// Set HTTP response headers
'Content-Length': file.length.toString(),
'Content-Type': 'application/pdf',
'Content-Disposition': `attachment; filename="file.pdf"`,
'Cache-Control': 'no-cache'
}
);
return file;
}
当然这只适用于 HTTP 或 WebSocket 协议。
我使用 Kuzzle 作为移动应用程序和多个网站的所有业务逻辑的后端。 在一个网站上,我需要下载包含多份报告的 PDF。为了保持相同的架构,我想在自定义 Kuzzle 插件中实现这一点。
插件的默认响应包含在默认 HTML 响应中,我如何精确自定义 headers 发送文件?
您可以使用 Request.setResult 方法指定您的 returning 原始负载并修改响应 headers.
然后只需return一个包含文件内容的Buffer
。
async sendPdf (request) {
const file = fs.readFileSync('./file.pdf');
request.setResult(null, {
// Tell Kuzzle that this result will contain a raw payload
raw: true,
headers: {
// Set HTTP response headers
'Content-Length': file.length.toString(),
'Content-Type': 'application/pdf',
'Content-Disposition': `attachment; filename="file.pdf"`,
'Cache-Control': 'no-cache'
}
);
return file;
}
当然这只适用于 HTTP 或 WebSocket 协议。