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

Tutorial básico NodeJS

NodeJS Express.js

NodeJS Buffer & URL;

NodeJS MySql

NodeJS MongoDB

NodeJS Arquivo (FS)

Outros NodeJS

Upload de Arquivo no Node.js

Node.js envia arquivo para o servidor

Upload de arquivo Node.js– Neste tutorial Node.js, vamos aprender a enviar arquivos do cliente Web para o servidor Node.js. Em outras palavras, o cliente pode enviar arquivos para o servidor Node.js.

Para upload de arquivo para o servidor Node.js, siga as seguintes etapas passo a passo:

  1. Módulos necessários

    Neste exemplo, usaremos os módulos http, fs e poderoso.http:Para atividades do servidor.Nó fs:Salvar o arquivo carregado em algum local no servidor.Poderoso:Analise os dados do formulário html. Se os módulos acima não forem instalados, você pode instalar imediatamente usando o NPM. Execute os seguintes comandos no terminal para instalar os módulos individuais:

    npm install http npm install fs npm install formidable
  2. Preparar o formulário HTML

    Preparar uma página HTML (upload_file.html) usando o seguinte formulário, que inclui etiquetas de entrada para upload de arquivos e envio de formulário.

    <form action="fileupload" method="post" enctype="multipart/form-data">
        <input type="file" name="filetoupload">
        <input type="submit" value="Upload">
    </form>
  3. Criar um servidor HTTP

    Criar um porta de escuta8086Servidor HTTP (você pode alterar a porta), e forneça um servidor para duas URLs, conforme mostrado a seguir:

    http.createServer(function (req, res) { 
        if (req.url == '/uploadform') { 
            // Se a URL da solicitação contiver “ / uploadform”
            // Preencher a resposta com um arquivo HTML contendo o formulário de upload
        } else if (req.url == '}}/fileupload') { 
            // Se a URL da solicitação contiver “ / fileupload”
            // Uso de módulos poderosos
            // Ler dados do formulário (incluindo o arquivo carregado)
            // e salve o arquivo em um local.
          
     ).listen(8086);
  4. Salvamento de arquivo

    Usando módulos poderosos, analise elementos de formulário e salve arquivos em um local. Após o upload do arquivo, você pode exibir uma mensagem informando que o upload foi bem-sucedido. Inicialmente, os arquivos são salvos em um local temporário. Podemos usar o método fs.rename() para mover os arquivos para o local desejado com um novo caminho.

    var form = new formidable.IncomingForm(); 
    form.parse(req, function (err, fields, files) { 
        // oldpath: pasta temporária onde o arquivo é salvo
        var oldpath = files.filetoupload.path; 
        var newpath = upload_path + files.filetoupload.name; 
        // Copiar o arquivo para a nova posição
        fs.rename(oldpath, newpath, function (err) { 
            if (err) throw err; 
            // Você pode usar outra página HTML para a resposta
            res.write('Arquivo uploaded e movido!'); 
            res.end(); 
        }); 
     });

Exemplo de upload de arquivo no Node.js

Aqui está um exemplo completo de upload de arquivo no Node.js:

Este exemplo possui dois arquivos, conforme mostrado a seguir:

upload_file.html

<!DOCTYPE html>
<html>
<head>
<title>Upload File</title>
<style>
    body{text-align:center;} 
    form{display:block;border:1px solid black;padding:20px;} 
</style>
</head>
<body>
    <h1>Upload files to Node.js Server</h1>
 
    <form action="fileupload" method="post" enctype="multipart/form-data">
        <input type="file" name="filetoupload">
        <input type="submit" value="Upload">
    </form>
</body>
</html
var http = require('http'); 
var fs = require('fs'); 
var formidable = require('formidable'); 
 
// 包含上传表单的html文件
var upload_html = fs.readFileSync("upload_file.html"); 
 
// 将其替换为保存上传文件的位置
var upload_path = "/home/arjun/workspace/nodejs/upload_file/"; 
 
http.createServer(function (req, res) { 
    if (req.url == '/uploadform') { 
      res.writeHead;200); 
      res.write(upload_html); 
      return res.end(); 
    } else if (req.url == '}}/fileupload') { 
        var form = new formidable.IncomingForm(); 
        form.parse(req, function (err, fields, files) { 
            // oldpath: pasta temporária onde o arquivo é salvo
            var oldpath = files.filetoupload.path; 
            var newpath = upload_path + files.filetoupload.name; 
            // Copiar o arquivo para a nova posição
            fs.rename(oldpath, newpath, function (err) { 
                if (err) throw err; 
                // Você pode usar outra página HTML para a resposta
                res.write('Arquivo uploaded e movido!'); 
                res.end(); 
            }); 
        }); 
      
 ).listen(8086);

Execute o arquivo de script Node.js no terminal com o nó.

arjun@w3codebox:~/workspace/nodejs/upload_file$ node nodejs-upload-file.js

Os arquivos uploaded são salvos no arquivo node.js-upload-ao lado do arquivo file.js. Você pode alterar essa posição no arquivo de script node.js.

Abra o navegador da Web (cliente HTTP), e clique na URL http:// localhost:8086/uploadform

Clique em Navegar.

Selecione um arquivo e clique em 'Abrir'.

Atualmente, o arquivo foi uploaded para o formulário. Clique no botão Upload do Node.js para analisar os elementos do formulário e salvar o arquivo.

Verifique o arquivo de script Node.js ao lado do servidor Node.js.

arjun@w3codebox:~/workspace/nodejs/upload_file$ ls
blur1.jpg  nodejs-upload-file.js  upload_file.html

Resumo:

Neste tutorial Node.js -  Upload de Arquivos para o Servidor Node.jsNós aprendemos a usar os poderosos módulos fs e http para upload de arquivos para o servidor Node.js.