HTTP-header verbroken? Browsers openen niet ' onze pdf, maar openen alle andere pdfs [gesloten]
Geplaatst op november 30, 2020 door adminReacties
- Misschien wil je je verzonden headers toevoegen. Dit is maar gissen. Dit hoort ook op stackoverflow.com, niet hier 🙂
- Ik ' m dit niet naar StackOverflow migreren, het ziet er hier passend uit. Het is niet ' niet per se een coderingsvraag, maar het is zeker een vraag voor webmasters.
- Ik denk dat je ' je hoeft je inputStream niet te converteren naar charset = UTF-8 " voor pdf
- Ik ' m stemmen om deze vraag af te sluiten als off-topic omdat het te wijten was aan een verkeerde configuratie van de server.
- Dit lijkt off-topic te zijn omdat het vereist dat we raden wat er mis zou kunnen zijn. Er is ' niets tastbaars om mee te werken.
Antwoord
Zie Hoe te forceren dat bestanden in de browser worden geopend in plaats van te downloaden (pdf)? die een antwoord heeft van ColinM die u precies vertelt wat de headers zouden moeten zijn:
Om aan de browser aan te geven dat het bestand in de browser moet worden bekeken :
Content-Type: application/pdf Content-Disposition: inline; filename="filename.pdf"
Om het bestand te downloaden in plaats van bekeken:
Content-Type: application/pdf Content-Disposition: attachment; filename="filename.pdf"
BEWERK: De aanhalingstekens rond de bestandsnaam zijn vereist als de bestandsnaam speciale tekens bevat, zoals
filename[1].pdf
, die anders het vermogen van de browser om het antwoord af te handelen, kunnen verstoren.
Reacties
- Bedankt voor dit zeer mooie antwoord. Ik moet echter mijn eigen meer speciale antwoord accepteren, omdat dat is opgelost mijn probleem.
Answe r
De oplossing was nogal speciaal.
De server had het standaard mime-type application/octet-stream
voor Pdf-bestanden. Nadat ik dit had gewijzigd in application/pdf
werkte alles goed.
In de lighttpd-configuratie heb ik de verandering bereikt door deze definitie toe te voegen:
mimetype.assign += ( ".pdf" => "application/pdf" )
Geef een reactie