4
respostas

Upload de arquivo via Streaming no Postman

Olá pessoal, vejam se podem me ajudar. Não utilizo o curl conforme o curso, utilizo o postman. Gostaria de realizar o upload do arquivo livro.png pelo postman mas não sei como ele poderia localizar o caminho do arquivo.

URI = http://localhost:3000/upload/imagem

Headers

filename = livro.png
Content-Type=application/octet-stream

Desta maneira o arquivo está sendo criado no destino, porém vazio. Obrigado!

4 respostas

Andre, da uma olhada nesse link na parte de FormData, existe uma opção para subir arquivos: https://www.getpostman.com/docs/postman/sending_api_requests/requests

Obrigado Mario, no link que passou realmente mostra aonde é realizada a transferência de arquivo no postman que é pelo body e não pelo header. Mas como o exercício proposto espera o arquivo no header ele não funcionará:

var fs = require('fs');
module.exports = function(app){

  app.post("/upload/imagem", function(req, res){
    console.log('recebendo imagem');

   var filename = req.headers.filename;

    req.pipe(fs.createWriteStream('files/' + filename))
    .on('finish', function(){
      console.log('arquivo escrito');
      res.status(201).send('ok');
    });

  });

}

Opa, mas o nome do arquivo é passado no cabeçalho o envio do arquivo em si vem pelo corpo da requisição.

No exemplo:

 curl -X POST http://localhost:3000/upload/imagem -v 
          -H "filename: <nome_do_arquivo>" 
          -H "Content-Type: application/octet-stream" 
          --data-binary @imagem.jpg

o data-binary @imagem.jpg está mandando o binário da imagem.

Mario, o que você falou está correto mas continua sem funcionar. Eu abri o tópico durante o curso referente ao exercício proposto mas substitui o postman pelo curl. Utilizando o código do curso sem mudar nada e o postman. Você chegou a testar?