English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
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:
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 |
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>
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);
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(); }); });
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
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.