tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
3
ZUGRIFFE
1060
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    HoPi HoPi ist offline Mitglied Bronze
    Registriert seit
    May 2003
    Beiträge
    42
    Moin,

    auf einem Netzlaufwerk ( N: ), das auf einem zentralen Server läuft, ist eine bestimmte Verzeichnisstruktur gegeben, z.B. N:\Kunden\<Kundennummer>\<YYYY-MM>. In einer Web-Anwendung möchte ich zu einem ausgewählten Monat die Dateien anzeigen, die sich im Verzeichnis befinden. Das ist mit einem Skript wie diesem (vgl. php: readdir()) kein Problem:

    Code :
    1
    2
    3
    4
    5
    6
    7
    
    if ($handle = @opendir($dir)) {
        $fileList = array();
        while (false !== ($file = readdir($handle))) {
            if ($file != '.' && $file != '..')
            $fileList[] = $file;
        }
    closedir($handle);

    Nun möchte ich die Datei so verlinken, dass ein Browser-Benutzer diese "lokal" öffnet. Sie sollen also nicht von einem Web-Server an den Browser geschickt werden (das wäre dann erstmal ein Download, Speichern in temporären Dateien, doppelter Datenmüll) sondern direkt mit dem auf dem Client eingestellten Programm geöffnet werden. Ich habe versucht, die Dateien per
    Code :
    1
    
    <a href="file://N/Kunden/...">Datei</a>
    zu verlinken - das funktioniert aber entweder gar nicht oder (mit anderer Schreibweise) nur im IE.

    Da es sich um eine Anwendung in meinem Betrieb handelt, kann ich quasi alles machen: Java-Applets einbinden (das möchte ich aber ungern), JavaScript ausnutzen, Plugins installieren, irgendwelche Shell-Skripte basteln - nur sollte das möglichst Browser- und OS-unabhängig laufen (Win/Mac, Firefox/Safari). Browser-Weichen wären kein Problem, den User-Agent wird keiner hier faken

    Habt ihr 'ne Idee, wie ich das am schönsten lösen kann?
     

  2. #2
    Avatar von Sven Mintel
    Sven Mintel Sven Mintel ist offline Mitglied
    Registriert seit
    Aug 2003
    Beiträge
    18.238
    Blog-Einträge
    6
    Moin,

    ansich sollte der Pfad so lauten, würde ich meinen:
    Code :
    1
    
    <a href="file:///N:/Kunden/...">Datei</a>

    Das generelle Problem ist aber dieses:
    Der Link ist ja in einem Dokument das von einem Webserver angefragt wird.
    Die meisten Browser werden dort das Verfolgen von Links auf das lokale Dateisystem des Rechners(das Netzlaufwerk wird als solches angesehen werden) verweigern.

    Ich sehe daher als brauchbare, systemunabhängige Lösung leider nur den Umweg über den Server...ein weiteres PHP-Skript, welches diese Datei per readfile() an den Clienten durchreicht.
     

  3. #3
    HoPi HoPi ist offline Mitglied Bronze
    Registriert seit
    May 2003
    Beiträge
    42
    Danke. Habe gerade noch ein wenig rumprobiert und bin dabei auf diesen Link gestoßen: http://kb.mozillazine.org/Firefox_:_...s_Don%27t_Work

    Meine Lösung: iframe src="file://///<Rechner-Name>/<Freigabe>/<Verzeichnis>" (falls mal jemand auf die Idee kommt, die Netzlaufwerke zu ändern):
    - funktioniert im IE auf Anhieb, sogar das Kopieren per Drag & Drop in dieses Verzeichnis ist möglich
    - funktioniert im Firefox mit NoScript, wenn Einstellungen - Erweitert - Vertrauenswürdig - "Links auf lokale Dateien erlauben" angehakt ist
    - funktioniert im Firefox ohne NoScript, wenn in der user.js (im Profilverzeichnis)
    Code :
    1
    2
    3
    
    user_pref("capability.policy.policynames", "localfilelinks");
    user_pref("capability.policy.localfilelinks.sites", "http://<Server>");
    user_pref("capability.policy.localfilelinks.checkloaduri.enabled", "allAccess");
    eingetragen wird

    Safari unter Windows zeigt leider nichts im iframe an. Ich kann leider auch nicht testen, wie das unter MacOS laufen würde. Ich lass den Thread deshalb nochmal auf "nicht erledigt".
     

  4. #4
    Avatar von Sven Mintel
    Sven Mintel Sven Mintel ist offline Mitglied
    Registriert seit
    Aug 2003
    Beiträge
    18.238
    Blog-Einträge
    6
    Was gehen könnte(JS vorrausgesetzt):

    Lasse den Nutzer eine HTML-Seite lokal speichern.
    Diese HTML-Seite könnte ein Javascript vom Webserver einbinden, welches in dem lokalen Dokument den gewünschten HTML-Code für die Links ausgibt.
    Auf die Linkziele sollte jetzt Zugriff möglich sein, da sich sowohl Dokument als auch Linkziele im lokalen Dateisystem befinden.
     

Ähnliche Themen

  1. IP-Videokameras - Wie direkt das Bildmaterial auf Server im Netz bringen?
    Von delmenhorster2010 im Forum Videoschnitt, Videotechnik & -produktion
    Antworten: 10
    Letzter Beitrag: 10.04.10, 19:20
  2. JSP-Dateien verlinken
    Von Floushee im Forum Enterprise Java (JEE, J2EE, Spring & Co.)
    Antworten: 3
    Letzter Beitrag: 03.11.04, 14:23
  3. dateien übers netz auslesen
    Von Hörnchenmeister im Forum Java
    Antworten: 3
    Letzter Beitrag: 15.06.04, 17:02
  4. AVI Dateien direkt downloadbar?
    Von Kurito im Forum PHP
    Antworten: 3
    Letzter Beitrag: 12.12.03, 07:22
  5. .rm dateien aus dem netz speichern ?
    Von Sebastian im Forum Videoschnitt, Videotechnik & -produktion
    Antworten: 3
    Letzter Beitrag: 09.06.02, 23:51

Stichworte