Chcel by som mať html súbor, ktorý organizuje určité súbory roztrúsené po celom pevnom disku. Mám napríklad dva súbory, na ktoré by som chcel vytvoriť odkaz:
C:\Programs\sort.mw
C:\Videá\prednáška.mp4
Problém je v tom, že by som chcel, aby odkazy fungovali ako skratky k súboru. Skúsil som nasledovné:
<a href="C:\Programs\sort.mw">Link 1</a>
<a href="C:\Videos\lecture.mp4">Link 2</a>
... ale prvý odkaz nerobí nič a druhý odkaz otvorí súbor v prehliadači Chrome, nie vo VLC.
Moje otázky sú:
Existuje spôsob, ako upraviť moje HTML, aby sa odkazy považovali za skratky k súborom?
Ak neexistuje'spôsob, ako upraviť HTML, existujú nejaké iné spôsoby, ako prehľadne odkazovať na súbory roztrúsené po celom pevnom disku?
Na mojom počítači beží Windows 7 a môj webový prehliadač je Chrome.
Ak chcete odkazovať na miestne súbory, musíte použiť protokol file:///
(áno, sú to tri lomítka).
<a href="file:///C:\Programs\sort.mw">Link 1</a>
<a href="file:///C:\Videos\lecture.mp4">Link 2</a>
Tieto nikdy automaticky neotvoria súbor vo vašich lokálnych aplikáciách. Je to z bezpečnostných dôvodov, ktorým sa budem venovať v poslednej časti. Ak sa otvorí, vždy sa otvorí len v prehliadači. Ak prehliadač dokáže súbor zobraziť, tak ho zobrazí, inak sa vás pravdepodobne opýta, či chcete súbor stiahnuť.
Niektoré prehliadače, napríklad moderné verzie prehliadača Chrome, dokonca odmietnu prejsť z protokolu http na protokol súborov, takže ak chcete tieto veci vôbec robiť, radšej sa uistite, že to otvárate lokálne pomocou protokolu súborov.
file:///
?Prvá časť adresy URL je protokol. Protokol je niekoľko písmen, potom dvojbodka a dve lomky. HTTP://
a FTP://
sú platné protokoly; C:/
nie je a som si istý, že sa naň ani poriadne nepodobá.
C:/
tiež nie je platná webová adresa. Prehliadač by mohol predpokladať, že to má byť http://c/
so zadaným prázdnym portom, ale to'by zlyhalo.
Prehliadač nesmie predpokladať, že sa odkazuje'na lokálny súbor. Nemá veľa dôvodov na takýto predpoklad, pretože verejné stránky sa zvyčajne nepokúšajú odkazovať na lokálne súbory ľudí.
Ak teda chcete pristupovať k miestnym súborom: povedzte mu, aby použil súborový protokol.
Pretože je to súčasť File URI scheme. Za prvými dvoma lomkami máte možnosť uviesť hostiteľa. Ak neuvediete hostiteľa, bude sa predpokladať, že odkazujete na súbor na vašom počítači. To znamená, že file:///C:/etc
je skratka pre file://localhost/C:/etc
.
Váš prehliadač bude na tieto súbory reagovať rovnako, ako by reagoval na rovnaký súbor kdekoľvek na internete. Tieto súbory sa nebudú otvárať vo vašom predvolenom obslužnom programe súborov (napr. MS Word alebo VLC Media Player) a nebudete nemôžete robiť nič také, ako napríklad požiadať Prieskumníka súborov, aby otvoril umiestnenie súboru'.
Je to mimoriadne dobrá vec pre vašu bezpečnosť.
Stránky v prehliadači nemôžu veľmi dobre komunikovať s operačným systémom. Ak by dobrá stránka mohla vášmu počítaču povedať, aby otvoril lecture.mp4 v VLC.exe, škodlivá stránka by mu mohla povedať, aby otvoril virus.bat v CMD.exe. Alebo by mohla vášmu počítaču jednoducho povedať, aby spustil niekoľko súborov Uninstall.exe alebo miliónkrát otvoril Prieskumníka súborov.
Nemusí vám to vyhovovať, ale HTML a zabezpečenie prehliadača v skutočnosti neboli navrhnuté na to, čo robíte. Ak chcete mať možnosť otvoriť lecture.mp4 v VLC.exe, zvážte namiesto toho napísanie desktopovej aplikácie.
Ak v počítači používate službu IIS, môžete adresár, do ktorého sa snažíte dostať, pridať ako virtuálny adresár. Ak to chcete urobiť, kliknite pravým tlačidlom myši na svoju stránku v ISS a stlačte "Pridať virtuálny adresár". Virtuálny adresár pomenujte. Ukážte virtuálny priečinok na umiestnenie vášho priečinka na vašom lokálnom PC. Musíte tiež zadať poverenia, ktoré majú oprávnenia na prístup do konkrétneho priečinka, napr. meno HOSTNAME\prijímacie meno a heslo. Potom môžete k súboru vo virtuálnom priečinku pristupovať ako k akémukoľvek inému súboru na vašej lokalite.
http://sitename.com/virtual_folder_name/filename.fileextension
Mimochodom, funguje to aj v prehliadači Chrome, ktorý inak neakceptuje súborový protokol file://
Dúfam, že to niekomu pomôže :)