Test: stiahnuť obrázok jedným klikom
Všetci viem, čo sa stane, keď kliknete na link, ktorý ukazuje na nejaký obrázok.
Viete za akých okolností Vám prehliadač namiesto zobrazenia obrázku v okne prehliadača ponúkne jeho stiahnutie (resp. otvorenie v asociovanej aplikácií vo Vašom operačnom systéme)?
Súčasťou je aj otázka: Je takýto problém k riešeniu závislý aj na:
- operačnom systéme?
- prehliadači
- webovom serveri
Prečo by sme chceli takúto blbinku? Bitmapy všeobecne používame priamo v stránkach ale existuje napríklad potreba ponúknuť bitmapu návštevníkovi na stiahnutie bez rizika, že sa pokúsi ju otvoriť priamo v prehliadači. To môže byť často nevhodné najmä u podkladov pre DTP. Pokúsite sa správne odpovedať? Napoviem – niekedy zdanlivá chyba môže byť želaným efektom.
Ten problem je zavisly na vsech trech. Za prve na serveru, s jakym content-type posle dany obrazek. Za druhe na prohlizeci, jak je nastaveny a za treti na operacnim systemu, pokud browser necha tuto otazku na nem.
Obecne je nejrozumnejsi u dat na stazeni posilat HTTP hlavicky:
Content-Type: application/octet-stream
Content-Disposition: attachment; filename=“jmenosouboru.ext“
Metodou P/O som bohuzial uz davnejsie zistil, ze ani Content-Type: application/octet-stream to nezachrani pokial na druhom konci je nemenovany prehliadac, ktory sa na zaklade automagickej detekcie snazi vnutit Ti jedine spravne riesenie. Pre zaujimavost .. skus si urobit HTML subor ale so suffixom .txt a potom ho cez web server skus otvorit v danom browseri. Otvori Ti ho ako HTML, aj ked mu posles Content-Type: text/plain.
Uau, cakal som, ze k normalnym odpovediam sa dopracujem az v pondelok. Obe odpovede su spravne, druha je dobrou poznamkou k prvej ;-)
K [2] by som mal poznamku, ze pokial mi nemenovany vinnik skusa format trebars podla pripony, tak mu to poslem s priponou, ktoru zarucene nema ;-) – o to vacsi problem ma vsak prijemca mojho suboru.
A este adept na Buranske riesenie: zabalim obrazok do .exe archivu ;-) a pre zlepsenie efektu pouzijem Kurnikovova metodu dvojitej pripony ;-)
Bohuzial to nemenovany vinnik neskusa podla pripony, pretoze inak by spominane .txt handloval ako txt a nie ako html. Robi to asi podobne ako unix command file .. cize prvych par bytes a podla toho, co tam uvidi, tak sa snazi zachovat. Zatial som neprisiel na to, ako to inteligentne oklamat v pripade, ze silou mocou chcem userovi ponuknut download txt suboru :-{(. Vzdy mu ho otvori do okna.