разместить изображение и сохранить локально с помощью узла - PullRequest
0 голосов
/ 01 декабря 2018

Я хочу использовать 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--

Есть какие-нибудь указатели, где я ошибаюсь?Большое спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...