Solucionado (ver solução)
Solucionado
(ver solução)
5
respostas

Download com Node

Olá,

Estou com duvida em fazer o download de arquivos pelo nodejs, consegui fazer os uploads dos arquivos com o "multer",mas queria fazer o download desses arquivos que estão disponíveis no meu projeto subindo junto com o node.Não estou conseguindo enxergar esses arquivos dentro do servidor node,existe uma maneira de eu conseguir subir todas essas imagens e arquivos que foram armazenados pelo upload no node para fazer o download delas?

5 respostas
solução!

Opa Danilo, tudo bem?

Em relação ao local de armazenamento de seus arquivos, é uma coisa que vc precisa saber :). Veja onde vc grava, já que esse é o endereço que vc vai referenciar para carregar o arquivo e disponibilizar o download do mesmo.

O código de download é algo que não tem super pronto, vc vai precisar carregar o arquivo e ir escrevendo no response.. aqui tem um bom exemplo => http://stackoverflow.com/questions/7288814/download-a-file-from-nodejs-server-using-express

Abaixo tem uma adaptação que fiz do código, mas não testei.. deve servir de ponto de inicio.

var path = require('path');
var mime = require('mime');

app.get('/download', function(req, res){

  var file = //carrega seu arquivo;

  var filename = path.basename(file);
  var mimetype = mime.lookup(file);

  res.setHeader('Content-disposition', 'attachment; filename=' + filename);
  res.setHeader('Content-type', mimetype);

  var filestream = fs.createReadStream(file);
  filestream.pipe(res);
});

Tudo sim Alberto e você? Obrigado pela ajuda consegui implementar. Para ficar mais completo a questão,tem que instalar os três pacotes do npm pra funcionar.

npm install path
npm install mime
npm install fs

Só pra ter mais informações, qual o limite do tamanho de arquivo pode ser enviado?

Opa Danilo, eu acho que não tem limite para o download... pensando no servidor, o limite vai ser sua memória... só que como vc está a parte de streaming, acho que o limite vai ser bem algo.

Obrigado Alberto