me encontré con muchos puestos cuando me preguntó para este problema, pero todos ellos se refieren a la forma de cargar un archivo desde su navegador a un servidor Node.js. Quiero subir un archivo del código node.js a otro servidor. Traté de escribir basado en mi conocimiento limitado de Node.js, pero no funciona.cómo cargar un archivo de 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();
})
La función anterior es invocada por otro código que genera datos.
Intenté cargar el mismo archivo de datos usando curl -F "file = @ <filepath>" y la carga se realizó correctamente. Pero mi código falla. El servidor devuelve un error específico de la aplicación que indica que el archivo cargado no era válido o estaba dañado.
I recoge los datos tcpdump y se analizaron en Wireshark. El paquete enviado desde mi código Node.js carece del límite requerido para los datos de varias partes. Veo este mensaje en paquetes Wireshark
The multipart dissector could not find the required boundary parameter.
alguna idea de cómo lograr esto en el código Node.js?
He estado intentando algo similar. Voy a probar tus sugerencias más tarde hoy. Encontré este módulo de nodo que se supone que facilita esta tarea. https://github.com/mikeal/request Pero aún no funcionó tan bien para mi propósito. – Jayesh