簡體   English   中英

在 datapower 網關中流式傳輸 pdf 個文件

[英]streaming pdf files in datapower gateway

我想下載 datapower 本地目錄中的 pdf 我創建了一個服務並編寫了一個小的網關腳本但是 pdf 以不可讀的格式下載 我希望 pdf 以.pdf 格式下載

var urlopen = require('urlopen');
var fs = require('fs');
urlopen.open("local:///pdf.pdf", function (error, response) {
  if (error) {
    session.output.write("openCallback error: " + error.errorMessage+"\n");
  }
  else {
    if (response.statusCode == 200) {
      // You have a 200, so you can read the file
      fs.readFile("local:///pdf.pdf", function(error,data) {
        session.output.write(data);
      });
    }
  }
});

好吧,首先,您正在使用您的代碼讀取 PDF 兩次,您應該使用 urlopen 或 fs.readFile,但不能同時使用...

如果您直接從文件系統(通過 UI)下載 PDF,請確保它是可下載和可讀的,以確保它在添加到 DP 框時沒有被“破壞”。

其次,將 PDF 存儲為base64總是更安全,因此如果您可以更改添加 PDF 的方式,請在保存之前將其編碼為 base64,然后獲取 base64 並在返回之前對其進行解碼。

您必須在響應中包含 PDF 的內容類型“application/pdf”,否則 DataPower 會將其返回為 XML(這是默認值),因此為content-type: application/pdf

我有點不確定 DataPower 是否可以處理“應用程序/PDF”(不記得了),但只要它不是 XML 或 JSON,它就不應該碰它......否則嘗試使用“應用程序/八位字節流”,如果 PDF不起作用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM