2017-07-31 7 views
0

私は、WebサービスとSOAPを使用してリクエストを行うクライアントと協力しています。私はノードエクスプレスアプリケーションを持っており、私はバイナリデータを持つプロパティを持つオブジェクトを返すsoapノードモジュールを使っています。バイナリPDFデータをローカルドライブにダウンロードまたは保存する

JVBERi0xLjQKMSAwIG9iago8PAovVHlwZSAvQ2F0YWxvZwovUGFnZXMgMyAwIFIKPj4KZW5kb2Jq \ nはCjIgMCBvYmoKPDwKL1R5cGUgL091dGxpbmVzCi9Db3VudCAwCj4 + CmVuZG9iagozIDAgb2JqCjw8 \ nはCi9UeXBlIC9QYWdlcwovQ291bnQgNAovS2lkcyBbMTggMCBSIDE5IDAgUiAyMCAwIFIgMjEgMCBS \ nは.... .... ....

あなたが見ることができるように、あります\:データは次のようになります固定長の後にn。

上記のバイナリデータをPDFに変換してダウンロードするにはどうすればよいですか。私たちのクライアントは、PDFに変換してダウンロードするのに必要なすべてのデータを持っていると言います。 fs.writeFile()を使ってフォルダに書き込もうとしましたが、そのファイルを開こうとすると、ファイルが壊れていると表示されます。ここでは、コードスニペットです:

soapClient.MyFunction(arguments, function(err, result){ 
 
    if(err) throw err; 
 
    if(result){ 
 
    console.log(result.data) //... Has the Binary data JVBERi0xLjQK.... 
 

 
    fs.writeFile('./output.pdf', result.data, {encoding : 'binary'},  function(res){ 
 
      console.log('File saved!'); 
 
     }) 
 
    } 
 
})

誰がここに私を助けることができますか?私はそれが馬鹿に聞こえることを知っている。多くのブログを検索して、適切なものを見つけることができませんでした。どんなヒントもありがとうございます。

+0

PDFの内容がプライベートでない場合、完全なサンプル –

答えて

0
すべての検索やねじれ後に[OK]を

と回し、ファイルを書き込むことができました:

fs.writeFile('./public/output.pdf', new Buffer(result.data, "base64"), function(response){ console.log('File Saved!'); });

0

私が最初にデータを貼り付けるコピーによって簡単なHTMLページで貴様のエンコーディングをしようと:あなたが気づいたよう

<!DOCTYPE html> 
<html> 
    <head> 
     <meta charset="utf-8" /> 
     <title></title> 
    </head> 
    <body> 

     <a href="data:application/pdf;base64,JVBERi0xLjQK....">Download Base64</a> 
     <a href="data:application/pdf;binary,JVBERi0xLjQK....">Download Binary</a> 

    </body> 
</html> 

/Nととせずにしようとしていないのはなぜ。

ファイルを開くと、プロセスを自動化する方法がわかります。

私の心の中に戻ってくるのは、IEがpdf MIMEタイプに問題があったということです。アプリケーション/オクテットストリームも試してください。最後に

+0

を持っていいだろうさて、私は最終的にファイルを書くことができました。それは非常に単純です: 'fs.writeFile( './ public/output.pdf'、新しいバッファ(result.data、" base64 ")、関数(レスポンス){ console.log( 'File Saved!'); }}); ' –

関連する問題