Node を使用してファイルを読み取り、マルチパート MIME ポストとして送信しようとしていますが、受信側でファイルが破損しているように見えるという問題があります。
私はファイルを読み、次のように送信する準備をします:
fs.readFile("before.png", function(err,data) {
// Snip
content += data.slice(0,data.length);
問題は、何かがストリームをパディングしているように見えることです。下の画像を参照して、before.png ソース ファイルと宛先で受信したファイルを比較してください。EF BF BD のシーケンスは、 .slice() が基になるバイトを提供していないことを示しています。おそらく、何かが UTF-8 エンコーディングに強制されています。
また、toString() を介してバイトを取得しようとしましたが、Bean はありません。アップロードされたファイルにまだ破損が見られます。
// content += data.toString() // UTF-8 default
content += data.toString('binary')
デフォルトの toString() もバイナリファイルを UTF-8 に強制しているのではないかと思いますが、「バイナリ」が基礎となるバイトストリームを提供することを期待していたでしょうか?
ブラッドに応じて編集します。連結を試みましたが、オブジェクトを文字列に戻す必要があります。その時点で、UTF-8 文字がストリームに再表示されるようです。
contentToSend = Buffer.concat([ header, data, footer ] );
this.oauth.post( endpoint, accessToken, accessTokenSecret, contentToSend.toString(), contentType, function( x, y, z ) {