2015-02-09 12 views
5

mam trasę, która wysyła plik PDF:Server Express wysłać pustego pliku PDF

app.get('/teste',function(req,res,next){ 
    res.setHeader('content-type','application/pdf'); 
    res.download(app.get('appPath')+'/teste.pdf'); 
} 

próbowałem użyć innego rozwiązania, które mniej lub bardziej to samo:

app.get('/teste',function(req,res,next){ 
    res.setHeader('content-type','application/pdf'); 
    fs.createReadStream(app.get('appPath')+'/teste.pdf').pipe(res); 
} 

i

app.get('/teste',function(req,res,next){ 
     res.setHeader('content-type','application/pdf'); 
     res.sendfile(app.get('appPath')+'/teste.pdf'); 
} 

Mój problem polega na tym, że pytam tę trasę w przeglądarce i otrzymuję pusty plik pdf z taką samą liczbą stron, co oryginalny plik.

Skonfigurowałem swój ekspresowy serwer pod numerem app.use(express.bodyParser());.

Ktoś może mi pomóc?

Odpowiedz

11

Widziałem to podczas używania oprogramowania pośredniczącego connect-livereload. Problem polega na tym, że connect-livereload wstrzykuje fragment kodu js do strumienia danych pdf. Może również powodować problemy z innymi danymi niehtml. Dobrą wiadomością jest to, że powinno to powodować problemy tylko podczas programowania (nie powinieneś ładować tego oprogramowania pośredniego w produkcji).

Zostało to ostatnio naprawione, ale wiele szablonów zawiera starszą wersję, więc sprawdź plik package.json i w razie potrzeby uzyskaj najnowszą wersję. Najnowsza wersja connect-livereload to 0.5.3.

+0

Dziękuję, to jest właśnie problem. Musiałem przesłać pliki PDF do chmury, aby omijać problem: S – user2542231

+1

Arggghhh Spędziłem cały dzień, patrząc na to i po prostu natknąłem się na twój komentarz. Aktualizacja programu connect-livereload do wersji 0.5.3 nie naprawiła go - całkowite wyłączenie go spowodowało !!! Co za strata dnia, i dziękuję bardzo ... to jest kłamliwe – Spock

0

Jeśli np. ignore: ['.pdf'] linia nie działa, może to być spowodowane faktem, że nie szukasz zasobu z powiązanym sufiksem.

E.g. W przypadku zapytania o zasób o identyfikatorze:

localhost:9000/api/export/getExport?destinationId=56179bb36bc51bb00836c3ed 

Nie można filtrować przyrostka pliku. Co można zrobić, a nie jest filtrowanie poprzez ścieżkę:

Zapraszamy do obejrzenia innych możliwych opcji w connect-livereload.