我正在嘗試將請求的二進制正文寫入文件並失敗。該文件在服務器上創建,但我無法打開它。我在Ubuntu上遇到'致命錯誤:不是png'。下面是我如何提出請求:使用node.js寫入二進制數據的問題
curl --request POST --data-binary "@abc.png" 192.168.1.38:8080
這裏是我如何試圖將它與文件一起保存。第一個片段是附加的所有數據一起的中間件,並且第二個是請求處理程序:
中間件:
app.use(function(req, res, next) {
req.rawBody = '';
req.setEncoding('utf-8');
req.on('data', function(chunk) {
req.rawBody += chunk;
});
req.on('end', function() {
next();
});
});
處理程序:
exports.save_image = function (req, res) {
fs.writeFile("./1.png", req.rawBody, function(err) {
if(err) {
console.log(err);
} else {
console.log("The file was saved!");
}
});
res.writeHead(200);
res.end('OK\n');
};
這裏的一些信息可能幫助。在中間件中,如果我記錄rawBody的長度,它看起來是正確的。我真的被困在如何正確保存文件。我需要的只是朝正確的方向發展。
謝謝。
你能否澄清 「失敗」?文件是否存在於服務器上,但內容不正確?服務器上文件是否完全不存在?你有錯誤信息嗎? –
編輯我的問題。 –