servidor nodejs node ejemplos con javascript file-upload node.js serverside-javascript

javascript - nodejs - npm



Cargar archivo usando NodeJS y nodo-formidable (2)

¿El formulario está configurado en enctype = "multipart / form-data"?

Solo lo he usado formidable con Express: el ejemplo Express funciona bien:

https://github.com/visionmedia/express/tree/master/examples/multipart

Superé la carga de archivos usando node.js y el formidable módulo aún, el archivo que se guardó en el disco está en algún tipo de formato incorrecto (codificación incorrecta), por ejemplo, si subo una imagen, no puedo verla, si la cargo un gedit de archivo txt proporciona el siguiente mensaje: "gedit no ha podido detectar la codificación de caracteres. Compruebe que no está tratando de abrir un archivo binario. Seleccione una codificación de caracteres del menú y vuelva a intentarlo".

aquí está el código:

form.encoding = ''utf-8''; form.parse(req, function(err, fields, files) { fs.writeFile(''test.js'', files.upload,''utf8'', function (err) { if (err) throw err; console.log(''It/'s saved!''); }); });


El problema es que files.upload no es el contenido del archivo, es una instancia de la clase File from node-formidable.

Mirar:

https://github.com/felixge/node-formidable/blob/master/lib/file.js

En lugar de tratar de escribir el archivo en el disco de nuevo, puede acceder a la ruta del archivo cargado así y usar fs.rename () para moverlo a donde desee:

fs.rename(files.upload.path, ''yournewfilename'', function (err) { throw err; });