2013-08-25 18 views
8

Chciałbym przeczytać zdalny obraz i wyświetlić go. Mogę zapisać plik, ale nie otrzymuję kodu, aby go wyświetlić. Idealnie po prostu chcę przekazać plik poprawnie bez przetwarzania - nie jestem pewien, czy krok pliku tmp jest wymagany, czy nie. Ten kod nic nie wyświetla - brak błędów. Próbowałem również res.pipe (odpowiedź), jak również.Zdalny plik pipingu w ExpressJS

var url = 'http://proxy.boxresizer.com/convert?resize=50x50&source=' + filename 

var request = http.get(url, function(response) { 

    var tmp = path.join(require('os').tmpDir(), filename); 

    var outstream = require('fs').createWriteStream(tmp); 

    response.pipe(outstream); 
    response.on('end', function() { 
    res.set('Content-Type', 'image/jpg'); 
     res.pipe(outstream); 
     res.end(); 
    }); 
}); 

Odpowiedz

12

Dobrze wciąż chciałbym wiedzieć, jak zrobić powyższej pracy, ale ja rozwiązać mój problem w jednej linii z modułem request!

var url = 'http://proxy.boxresizer.com/convert?resize=50x50&source=' + filename 
require('request').get(url).pipe(res); // res being Express response 
+2

To znacznie lepiej. Nie zapisujesz pliku na dysku. Jeśli chcesz zapisać odpowiedź, po 'response.pipe (outstream); musisz ponownie otworzyć plik' createreadstream' i przekierować go do 'res'. W pytaniu zrobiłeś "res.pipe (outstream); co jest błędem. Musisz potokować plik do 'res'. – user568109

+0

Podoba mi się ta odpowiedź: http://stackoverflow.com/questions/11355366/nodejs-redirect-url – Ron