Wie kann ich auf einer lokal betriebenen Webseite einen Link zu einer lokalen Datei erstellen?

Lesezeit: 7 Minuten

Wie kann ich auf einer lokal betriebenen Webseite einen Link
Brian Fitzpatrick

Ich möchte eine HTML-Datei haben, die bestimmte Dateien organisiert, die über meine Festplatte verstreut sind. Zum Beispiel habe ich zwei Dateien, die ich verlinken würde:

  • C:\Programs\sort.mw
  • C:\Videos\lecture.mp4

Das Problem ist, dass ich möchte, dass die Links als Verknüpfung zu der Datei fungieren. Ich habe folgendes versucht:

<a href="https://stackoverflow.com/questions/18246053/C:\Programs\sort.mw">Link 1</a>
<a href="C:\Videos\lecture.mp4">Link 2</a>

… aber der erste Link tut nichts und der zweite Link öffnet die Datei in Chrome, nicht in VLC.

Meine Fragen sind:

  1. Gibt es eine Möglichkeit, meinen HTML-Code so anzupassen, dass die Links als Verknüpfungen zu den Dateien behandelt werden?

  2. Wenn es keine Möglichkeit gibt, den HTML-Code anzupassen, gibt es andere Möglichkeiten, ordentlich auf Dateien zu verlinken, die auf der Festplatte verstreut sind?

Auf meinem Computer läuft Windows 7 und mein Webbrowser ist Chrome.

1646315527 157 Wie kann ich auf einer lokal betriebenen Webseite einen Link
doppelgrüner

Sie müssen die verwenden file:/// protocol (ja, das sind drei Schrägstriche), wenn Sie auf lokale Dateien verlinken möchten.

<a href="file:///C:\Programs\sort.mw">Link 1</a>
<a href="file:///C:\Videos\lecture.mp4">Link 2</a>

Diese werden die Datei niemals automatisch in Ihren lokalen Anwendungen öffnen. Das ist aus Sicherheitsgründen, die ich im letzten Abschnitt behandeln werde. Wenn es geöffnet wird, wird es immer nur im Browser geöffnet. Wenn Ihr Browser die Datei anzeigen kann, wird er dies tun, andernfalls werden Sie wahrscheinlich gefragt, ob Sie die Datei herunterladen möchten.

Sie können nicht von http(s) zum Dateiprotokoll wechseln

Moderne Versionen vieler Browser (z. B. Firefox und Chrome) weigern sich, vom http(s)-Protokoll zum Dateiprotokoll zu wechseln, um bösartiges Verhalten zu verhindern.

Dies bedeutet, dass eine Webseite, die irgendwo auf einer Website gehostet wird, niemals auf Dateien auf Ihrer Festplatte verlinken kann. Sie müssen Ihre Webseite lokal mit dem Dateiprotokoll öffnen, wenn Sie diese Dinge überhaupt tun möchten.

Warum bleibt es ohne hängen file:///?

Der erste Teil einer URL ist das Protokoll. Ein Protokoll besteht aus ein paar Buchstaben, dann einem Doppelpunkt und zwei Schrägstrichen. HTTP:// und FTP:// sind gültige Protokolle; C:/ ist es nicht und ich bin mir ziemlich sicher, dass es nicht einmal richtig einem ähnelt.

C:/ ist auch keine gültige Webadresse. Der Browser könnte davon ausgehen, dass es so sein soll http://c/ mit einem leeren Port angegeben, aber das wird fehlschlagen.

Ihr Browser geht möglicherweise nicht davon aus, dass er auf eine lokale Datei verweist. Es gibt wenig Grund, diese Annahme zu treffen, da Webseiten im Allgemeinen nicht versuchen, auf die lokalen Dateien der Benutzer zu verlinken.

Wenn Sie also auf lokale Dateien zugreifen möchten: Sagen Sie ihm, dass es das Dateiprotokoll verwenden soll.

Warum drei Schrägstriche?

Denn es gehört dazu Datei-URI-Schema. Sie haben die Möglichkeit, nach den ersten beiden Schrägstrichen einen Host anzugeben. Wenn Sie die Angabe eines Hosts überspringen, wird einfach angenommen, dass Sie sich auf eine Datei auf Ihrem eigenen PC beziehen. Das heisst file:///C:/etc ist eine Abkürzung für file://localhost/C:/etc.

Diese Dateien werden immer noch in Ihrem Browser geöffnet und das ist gut so

Ihr Browser reagiert auf diese Dateien genauso, wie er auf dieselbe Datei überall im Internet reagieren würde. Diese Dateien wird nicht Öffnen Sie in Ihrem Standard-Dateihandler (z. B. MS Word oder VLC Media Player) und Sie wird nicht in der Lage sein, den Datei-Explorer zu bitten, den Speicherort der Datei zu öffnen.

Dies ist eine äußerst gute Sache für Ihre Sicherheit.

Websites in Ihrem Browser können nicht sehr gut mit Ihrem Betriebssystem interagieren. Wenn eine gute Site Ihrem Computer mitteilen könnte, dass er geöffnet werden soll vortrag.mp4 in VLC.exekönnte eine bösartige Website sagen, dass es geöffnet werden soll virus.bat in CMD.exe. Oder es könnte Ihrer Maschine einfach sagen, dass sie ein paar ausführen soll Uninstall.exe Dateien oder öffnen Sie den Datei-Explorer millionenfach.

Dies mag für Sie nicht bequem sein, aber HTML und Browsersicherheit wurden nicht wirklich für das entwickelt, was Sie tun. Wenn Sie öffnen möchten vortrag.mp4 in VLC.exe Erwägen Sie stattdessen, eine Desktop-Anwendung zu schreiben.

  • Danke Jonathan. Wissen Sie, ob es eine Möglichkeit gibt, alternativ “Datei im Ordner anzeigen” zu lassen?

    – Brian Fitzpatrick

    15. August 2013 um 4:38 Uhr

  • @Brian Ihr Browser kann auf diese Weise nicht mit Ihrem Betriebssystem interagieren, und Sie sollten sehr froh sein, dass dies nicht möglich ist.

    – doppelgrüner

    15. August 2013 um 4:45 Uhr


  • Scheint, als würde Chrome sowieso keine lokalen Dateien mit dem file:///-Protokoll herunterladen (was Ihnen eine Not allowed to load local resource Error)

    – Loupax

    24. März 2014 um 16:09 Uhr

  • Ich möchte einen Link wie diesen “file:///..\..\sort.mw” angeben, damit er zwei Ordner zurückgeht und die Datei dort abruft. Weil wir die Word-Datei in Dropbox verwenden. Gibt es also eine Lösung.

    – Murtaza Munshi

    28. Oktober 2015 um 9:55 Uhr

  • Es könnte auch erwähnenswert sein, dass Sie nicht von einer Website (z. B. einem lokalen Entwicklungsserver) auf eine lokale Datei verlinken können. forums.mozillazine.org/viewtopic.php?f=9&t=1730

    – Nuala

    20. Februar 2016 um 23:30 Uhr

Wie kann ich auf einer lokal betriebenen Webseite einen Link
Benutzer3507261

Wenn Sie IIS auf Ihrem PC ausführen, können Sie das Verzeichnis, das Sie erreichen möchten, als virtuelles Verzeichnis hinzufügen. Klicken Sie dazu mit der rechten Maustaste auf Ihre Site in ISS und drücken Sie „Virtuelles Verzeichnis hinzufügen“. Benennen Sie den virtuellen Ordner. Richten Sie den virtuellen Ordner auf Ihren Ordnerspeicherort auf Ihrem lokalen PC. Sie müssen auch Anmeldeinformationen angeben, die über Berechtigungen zum Zugriff auf den bestimmten Ordner verfügen, z. HOSTNAME\Benutzername und Passwort. Danach können Sie auf die Datei im virtuellen Ordner wie auf jede andere Datei auf Ihrer Site zugreifen.

http://sitename.com/virtueller_ordner_name/dateiname.dateierweiterung

Das funktioniert übrigens auch mit Chrome, das sonst das Dateiprotokoll file:// nicht akzeptiert.

Hoffe das hilft jemandem 🙂

  • Danke für die Antwort! Ich habe file:/// vor einen Pfad zu einer Datei gesetzt, aber wenn ich darauf klicke, passiert nichts. Ich muss es mit Strg öffnen (in neuem Tab). Wieso ist es so?

    – Piotr Czyż

    30. Juli 2015 um 9:30 Uhr

Janky bestenfalls

<a href="https://stackoverflow.com/questions/18246053/file://///server/folders/x/x/filename.ext">right click </a></td>

Klicken Sie dann mit der rechten Maustaste, wählen Sie die Option “Standort kopieren” und fügen Sie sie dann in die URL ein.

  • sind wir gezwungen, mit der rechten Maustaste zu klicken? Gibt es eine Möglichkeit, einfach mit der linken Maustaste darauf zu klicken?

    – Bando

    8. August 2019 um 9:13 Uhr

  • Haben Sie eine Möglichkeit gefunden, einen lokalen Link durch einfaches Klicken mit der linken Maustaste zu öffnen?

    – lordparthurnaax

    26. Dezember 2020 um 9:14 Uhr

1646315528 919 Wie kann ich auf einer lokal betriebenen Webseite einen Link
pery mimon

zurück zu 2017:

verwenden URL.createObjectURL( Datei ) um eine lokale Verbindung zum Dateisystem zu erstellen, das der Benutzer auswählt;

Vergessen Sie nicht, Speicher freizugeben, indem Sie verwenden URL.revokeObjectURL()

1646315529 701 Wie kann ich auf einer lokal betriebenen Webseite einen Link
Maciej

Ich habe einen Weg und arbeite so:

<'a href="https://stackoverflow.com/questions/18246053/FOLDER_PATH" target="_explorer.exe">Link Text<'/a>

  • Das sieht nicht nach einem validen Zielwert aus, sogar im Internetexplorer.

    – doppelgrüner

    13. Oktober 2016 um 11:06 Uhr

  • IE ignoriert (ungültiges) Ziel (oben). Folgendes funktioniert gut mit IE10, 11: Link to tmp on drive C.

    – Primehunter

    9. November 2016 um 10:29 Uhr

  • Es funktioniert gut für mich, wenn ich IE und einen Netzwerklaufwerkspfad wie „file://servername/path\to\folder“ anstelle von FOLDER_PATH verwende. Wenn Sie ‘target=”_explorer.exe”‘ weglassen, öffnet sich der Ordner im IE anstelle von explorer.exe und sieht ziemlich nach Explorer aus.

    – JonP

    7. April 2017 um 13:24 Uhr

  • Das sieht nicht nach einem validen Zielwert aus, sogar im Internetexplorer.

    – doppelgrüner

    13. Oktober 2016 um 11:06 Uhr

  • IE ignoriert (ungültiges) Ziel (oben). Folgendes funktioniert gut mit IE10, 11: Link to tmp on drive C.

    – Primehunter

    9. November 2016 um 10:29 Uhr

  • Es funktioniert gut für mich, wenn ich IE und einen Netzwerklaufwerkspfad wie „file://servername/path\to\folder“ anstelle von FOLDER_PATH verwende. Wenn Sie ‘target=”_explorer.exe”‘ weglassen, öffnet sich der Ordner im IE anstelle von explorer.exe und sieht ziemlich nach Explorer aus.

    – JonP

    7. April 2017 um 13:24 Uhr

924040cookie-checkWie kann ich auf einer lokal betriebenen Webseite einen Link zu einer lokalen Datei erstellen?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy