Antetul HTTP este rupt? Browserele nu ' nu deschid pdf-ul nostru, dar deschid toate celelalte pdf-uri [închis]
On noiembrie 30, 2020 by adminComentarii
- S-ar putea să doriți să adăugați antetele trimise. Acest lucru este doar ghicit. De asemenea, acest lucru aparține stackoverflow.com, nu aici 🙂
- Nu ' nu migrez acest lucru în StackOverflow, pare potrivit aici. Nu este ' neapărat o întrebare de codificare, dar este cu siguranță o întrebare pentru webmasteri.
- Cred că nu aveți ' nu trebuie să convertiți inputStream în charset = UTF-8 " pentru PDF
- Am ' m vot pentru a închide această întrebare ca fiind off-topic, deoarece s-a datorat configurării greșite a serverului.
- Se pare că este off-topic, deoarece ne cere să ghicim ce ar putea fi greșit. ' nu este nimic tangibil pentru care să lucrăm.
Răspuns
Consultați Cum forțați deschiderea fișierelor în browser în loc de descărcare (pdf)? care are un răspuns de la ColinM care vă spune exact care ar trebui să fie anteturile:
Pentru a indica browserului că fișierul trebuie vizualizat în browser :
Content-Type: application/pdf Content-Disposition: inline; filename="filename.pdf"
Pentru a descărca fișierul în loc să îl vizualizați:
Content-Type: application/pdf Content-Disposition: attachment; filename="filename.pdf"
EDIT: Ghilimelele din jurul numelui fișierului sunt obligatorii dacă numele fișierului conține caractere speciale, cum ar fi
filename[1].pdf
, care altfel ar putea rupe capacitatea browserului de a gestiona răspunsul.
Comentarii
- Vă mulțumesc pentru acest răspuns foarte frumos. Cu toate acestea, trebuie să accept propriul meu răspuns mai special, deoarece acesta a rezolvat problema mea.
Answe r
Soluția a fost destul de specială.
Serverul avea tipul mime implicit application/octet-stream
Fișiere PDF. După ce am schimbat acest lucru în application/pdf
totul a funcționat bine.
În configurația lighttpd am realizat modificarea adăugând această definiție:
mimetype.assign += ( ".pdf" => "application/pdf" )
Lasă un răspuns