3

multipart/form-data content-type を使用して、Node JS から http モジュール経由でファイルを送信したいと考えています。バイナリ エンコーディングの問題。単純なテキスト ファイルを送信しようとしている場合は問題ありません。

url: 'some-site.com',
method: 'POST',
headers: 
{
    'content-type': 'multipart/form-data; boundary=-----BNDRY',
    'content-length': 128
},
body: '-------BNDRY\r\ncontent-type: text/plain\r\ncontent-disposition: form-data; name="file"; filename="file.txt"\r\n\r\ntest\r\n-------BNDRY--'
}

しかし、ファイルの読み取り後に JPG のようなものを送信しようとすると (FS modile などを介して)、Buffer をリクエスト本文の文字列に変換しようとすると失敗します。Buffer.toString(encoding)メソッドとcontent-transfer-encoding: encodingヘッダーのさまざまな組み合わせを試しましたが、成功しませんでした。何らかの理由で、base64 エンコーディングも機能しません。connect bodyParser でテストしましたが、コンテンツ転送エンコーディングを気にしていないようです:本文の base64 ヘッダー - コンテンツはまだデコードされていない base64 文字列として表示されます。

また、問題を解決するために node-formidable や express などの外部モジュールを使用したくありません。

ありがとう。

4

1 に答える 1