我想使用curl
将图像发布到节点服务器并本地保存。但是总会有一个标头写入新文件,这会导致原始文件和新文件之间的不一致。这是我的节点端代码:
var http = require('http');
var url = require('url');
var fs = require('fs');
var server = http.createServer(function (req, res) {
switch (req.method) {
case 'POST':
var item = '';
req.setEncoding('binary');
req.on('data', function (chunk) {
console.log('parsed', chunk);
item += chunk;
});
req.on('end', function () {
//console.log('done parsing');
fs.writeFile('/var/www/html/hikv.svg', item, function (err) {
if (err) throw err;
console.log('saved');
})
res.end('OK\n');
});
break;
case 'GET':
fs.readFile('/var/www/html/hikv.svg', function (err, data) {
res.writeHead(200, {'Content-type:': 'image/svg+xml'});
res.write(data);
res.end();
});
break;
}
});
server.listen(3001);
我的curl命令是:
curl -s -F“ file=@/root/tmp/hikv.svg” localhost:3001
发布似乎不错,但是文件有些不同。
root@tmp$ diff /var/www/html/hikv.svg ./hikv.svg
1,4d0
< ------------------------------a19948064ecb
< Content-Disposition: form-data; name="file"; filename="hikv.svg"
< Content-Type: application/octet-stream
<
7475,7476d7470
<
< ------------------------------a19948064ecb--
任何指针都指出我错了吗?非常感谢