English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Ejemplo de procesamiento de carga de archivos en node.js

Sin más preámbulos, bajo el marco básico de desarrollo web de Node.js, crearemos una función de subida de archivos

El manejador de subida es bastante simple, se puede encontrar en línea

var url=require('url');
var exec=require('child_process').exec;
var querystring=require('querystring');
/********************************Subida de archivos Número3Modulo de prueba*************************/
function fileUploadForm(request,response){
 response.writeHead(200,{'Content-Type':'text/html'});
 var body = '<html>'+
  '<head>'+
  '<meta http-equiv="Content-Type" '+
  'content="text/html; charset=UTF-8" /'>+
  '</head>'+
  '<body>'+
  '<form action="/fileuploadaction" method="post" enctype="multipart/form-data">'+
  '<input name="name" type="text" /'>+
  '<input name="upload" type="file" /'>+
  '<input type="submit" value="Upload" /'>+
  '</form>'+
  '</body>'+
  '</html>';
 response.write(body);
 response.end();
}
<span style="color: rgb(255, 0, 0);">function fileUploadAction(request,response){
 var fs=require('fs');
 var formidable=require('formidable');
 var baseUploadPath="./media/upload/";
 var form=new formidable.IncomingForm();
 form.uploadDir='./var/tmp';
 form.parse(request,function(error,fields,files){
  if(!error){
   console.log(fields);
   var desUploadName=baseUploadPath+files.upload.name;
   fs.renameSync(files.upload.path, desUploadName);
   response.writeHead(200,{'Content-Type':'text/html'});//It is worth noting that the content of the response.writeHead() function must be written inside the callback of form.parse() or it will not be displayed
   response.write('received image:</br>');
   response.write('<img src="/showuploadimage?name='+files.upload.name+'" />');
   response.end();
  }
 });
</span>
function showUploadImage(request,response){
 var fs=require('fs');
 var imageName=querystring.parse(url.parse(request.url).query);
 var baseUploadPath="./media/upload/";
 fs.readFile(baseUploadPath+imageName.name, "binary", function(error, file) {
  if(error) {
   response.writeHead(500, {"Content-Type": "text/plain");
   response.write(error + "\n");
   response.end();
  } else {
   response.writeHead(200, {"Content-Type": "image/png");
   response.write(file, "binary");
   response.end();
  }
 });
}
exports.fileuploadform=fileUploadForm;
exports.fileuploadaction=fileUploadAction;
exports.showuploadimage=showUploadImage;

Al mismo tiempo, agregar en index.js

handle['/fileuploadform=handlers.fileuploadform; 
handle['/fileuploadaction=handlers.fileuploadaction; 
handle['/showuploadimage=handlers.showuploadimage; 

Es importante tener en cuenta que, cuando se necesita manejar la subida de archivos, no se puede agregar en el server

request.setEncoding('utf8');//Establecer esto podría causar que el upload fallara, ¿es esto un bug del módulo formidable? 

y

request.addListener("data",function(tempPostData){ 
   postData+=tempPostData; 
  }); 
  request.addListener("end",function(){ 
   route(request,response,postData,handle); 
  }); 

Esto es todo el contenido de este artículo, espero que ayude a su aprendizaje y que todos nos apoyen en el tutorial de clamor.

Declaración: El contenido de este artículo se obtiene de la red, es propiedad del autor original, el contenido se contribuye y carga de manera autónoma por los usuarios de Internet, este sitio no posee los derechos de propiedad, no se ha realizado una edición humana y no asume ninguna responsabilidad legal. Si encuentra contenido sospechoso de copyright, por favor envíe un correo electrónico a: notice#oldtoolbag.com (al enviar un correo electrónico, reemplace # con @) para denunciar, y proporcione evidencia relevante. Una vez confirmado, este sitio eliminará inmediatamente el contenido sospechoso de infracción.

Te gustará también