Я хочу использовать 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--
Есть какие-нибудь указатели, где я ошибаюсь?Большое спасибо