Jak vytvořit odkaz na PDF, který prohlížeč neotevře, ale pouze stáhne?
Dobrý den,
Je, prosím Vás, vytvořit odkaz na PDF soubor, který ho pouze stáhne, ale neotevře ho? Našel jsem, že by to mělo jít pomocí atributu download, ale vůbec to nepomohlo.
Děkuji
Funguje to. Pokud to teda podporuje peohlizec ktery nespecifikujes.
Já to kdysi taky potřeboval a nešlo to vyřešit. Atribut download v té době neexistoval. Takže mě to teď zaujalo a tak to testuju: ve Firefoxu 92.0 se zdá, že když ta stránka je lokálně, tak to nefunguje (otevře ten soubor rovnou v prohlížeči), ale když je na webserveru, tak to něco dělá - přesněji u odkazu na obrázek nebo pdf to nabízí volbu buď otevřít v programu nebo stáhnout...
A co tím přesně myslíš?
Jestli myslíš ať to pošle server jako stream tak v apache se to dělá třeba přes .htaccess takto:
Navíc ten tebou uváděný atribut download funguje, co na něm nefunguje?
Ty asi nechápeš jak to funguje.
Ovlivnit můžeš jen to, co ovlivnit jde. Ne to, co ovlivnit nejde, třeba chování prohlížeče.
Můžeš ovlivnit třeba to, jestli se to rovnou otevře nebo se ukáže okno co se má dělat nebo rovnout stáhnout, ale jen v rámci chování prohlížeče.
Pokud třeba nastavíš ten atribut nebo .htaccess tak defaultně třeba ve firefoxu se otevře okno co se s tím souborem má dělat, v chrome se to rovnou stáhne. Třeba u toho firefoxu je potřeba to nastavit přímo v prohlížeči pokud chceš aby se choval jinak.
Pokud se to nenastaví (atribut, .htaccess) tak třeba pdf, obrázky a podobně se rovnou zobrazují.
Mělo by to jít pravým myšítkem.
Nebo stačí zabalit PDF do ZIPu....
No on podle mě řeší to, že mu ve firefoxu vyskakuje okno co se souborem a ten mu tam bude vyskakovat i se zipem teda pokud si firefox nenastaví uživatelsky protože jinak by nepsal, že mu atribut download nefunguje
V PHP:
Correct-php-headers-for-pdf-file-download
Jednak je blbost to hnát přes php a jednak jsi si jistý, že v odkazu je aspoň něco, co by mu pomohlo?
Jenom OFF, ale celkem mě vždycky štve, když se chci na to PDF jenom mrknout, ale musím ho prvně uložit...
Musíš prvně uložit? Proč?
Kdyby to fungovalo takhle vždy, nepsal bych to...hodně často se mi to stáva u manuálu třeba od TV na některých stránkách.
Nabídne jenom uložení a nebere žádný ohled na nastavení...
Aha. Máš nějaký konkrétní odkaz? Jen pro zajímavost. Matně se mi vybavuje, že se to někdy chová jak popisuješ.
Konkrétního teď nemám nic, zkusím najít...
Pdf se může ze serveru poslat (nebo prohlížeč může se souborem nakládat) buď jako:
1) application/pdf
nebo
2) application/octet-stream
V tom prvním případě se defaultně například v Chromu i Firefoxu zobrazí.
V tom druhém případě se defaultně v Chromu stáhne. A ve Firefoxu vyjede okýnko s výběrem co se má se souboremn udělat (to, co jsi uvedl).
Problém host vs Abox je ten, že host to zkouší ve Firefoxu (tam application/octet-stream jde kliknout v tom okně, že se to má zobrazit), ale Abox komentuje něco jako Chrome (tam se application/octet-stream rovnou stáhne).
A problém tazatele MichalDM je ten, že atribut download zkouší ve Firefoxu (nebo něčem podobném), jenže pro Firefox je normální, že nabídne okno, takže je to jen neznalost chování prohléžečů, ne že mu atribut download nefunguje.
Ano, je to v Opeře a bez ohledu na nastavení:
opera://settings/content/pdfDocuments
to tohle ignoruje a nabídne jen a pouze stažení a pak se musí ručně otevřít.
Ale jak říkám, nejčastěji se mi to stává na webech s manuály TV...
edit: podařilo se mi najít, např.
https://www.lg.com/cz/podpora/manualy?csSalesCode=OLED88Z19LA.AEU
dám si vyhledat třeba 75UP80003LR a pak si chci otevřít příručku uživatele.
V Opeře nabídne pouze uložení, v Edge dá možnost Otevřít a Uložit...
Ve Firefoxu po kliknutí na Příručku uživatele mám toto:
Pretože Firefox to jednoducho ignoruje, a zachová sa vždy rovnako.
To není tak úplně pravda.
Ten první řádek (Otevřít ve Firefoxu) se zobrazí jenom při nastavení pdfjs.disabled na false.
Jinak se zobrazí jen ty dvě spodní možnosti.
Server má možnosť pridať do http odpovede aj príznak content-disposition inline/attachment, čo hovorí prehliadaču ako naložiť s odpoveďou. No a zatiaľ čo ostatné prehliadače to rešpektujú, tak Firefox sa na to zdá sa vykašle a zobrazí si svoju tabuľku. A to či tam ešte pridá nejakú svoju možnosť je vedľajšie.
A v čem rozporuješ moji odpověď?
Ale je to pravda, firefox to ignoruje, niet o čom diskutovať.
Jak jste přišel k tomu, že řeším tenhle problém? Neřeším zobrazení okna, co má se souborem udělat, ale to, že ho automaticky zobrazí.
Automaticky zobrazí = spustí? To už Windows zabezpečení snad ani nedovolí.
Automaticky myslím bez zeptání.
Dyť jsem to tu psal aspoň dvakrát. Co na to nechápeš? To okno Firefox zobrazuje defaultně pro application/octet-stream a Chrome to rovnou uloží. To, že se tak Firefox chová, je prostě prohlížečem. Mám ti to tu napsat ještě tisíckrát??? Ty jsi fakt natvrdlý.
Myslím, že problém je hlavně v tom, že tazatel asi hledá řešení nezávislé na straně příjemce, tedy na použitém prohlížeči. A protože každý má jiný nebo jinak nastavený prohlížeč, vyplývá z toho pro mne, že řešení neexistuje.