Я нашел много сообщений, когда я запросил эту проблему, но все они относятся к тому, как загрузить файл из вашего браузера на сервер node.js. Я хочу загрузить файл из node.js кода на другой сервер. Я попытался написать его на основе моего ограниченного знания node.js, но он не работает.
function (data) {
var reqdata = 'file='+data;
var request = http.request({
host : HOST_NAME,
port : HOST_PORT,
path : PATH,
method : 'POST',
headers : {
'Content-Type' : 'multipart/form-data',
'Content-Length' : reqdata.length
}
}, function (response) {
var data = '';
response.on('data', function(chunk) {
data += chunk.toString();
});
response.on('end', function() {
console.log(data);
});
});
request.write(reqdata+'\r\n\r\n');
request.end();
})
Вышеупомянутая функция вызывается другим кодом, который генерирует данные.
Я попытался загрузить тот же файл данных с помощью curl -F "file = @<filepath> " и загрузка выполнена успешно. Но мой код не работает. Сервер возвращает конкретную ошибку приложения, которая указывает, что загруженный файл недействителен/поврежден.
Я собрал данные tcpdump и проанализировал его в wirehark. В пакете, отправленном из моего кода node.js, не хватает границы, необходимой для многочастных данных. Я вижу это сообщение в пакете wirehark
The multipart dissector could not find the required boundary parameter.
Любая идея, как это сделать в node.js-коде?