2013-07-21 56 views
2

我想通過使用multipart/form-data內容類型的http模塊從節點JS發送文件。 二進制編碼的問題。 這是確定的,當我嘗試發送簡單的文本文件:節點JS POST多部分/表單數據請求

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--' 
} 

但是,當我試圖讀取文件(例如,通過FS modile)後,發送類似JPG和翻譯緩衝區,以字符串請求主體它失敗。我嘗試了Buffer.toString(編碼)方法和content-transfer-encoding:編碼標頭的不同組合,但沒有成功。出於某種原因,base64編碼不起作用,我用連接bodyParser測試了它,似乎並不在乎content-transfer-encoding:base64正文中的標頭 - 內容仍然是未解碼的base64字符串。

而且我不想使用像node-formidable或express這樣的外部模塊來解決我的問題。

謝謝。

回答

-1

我用Buffer代替String

+2

或許添加你如何解決它的未來用戶的例子來解決呢? – jamietelin

相關問題