uepselon: Applet soll Verzeichnis auf dem Server auslesen

Hallo,

ich habe ein Applet erstellt welches Thumbnails von Bildern anzeigen kann. Nun will ich es soweit automatisieren, das es sämtliche Bilder in einem Angegebenen Verzeichnis darstellt.

Das einzige Problem hierbei ist, das ich den Inhalt des Verzeichnisses nicht auflisten kann. Habe folgendes versucht:

File dir = new File("images/path/");

String[] filenames = dir.list();

Als Fehelr kommt ein Security Alert im Status-Line des Browsers. Warum? Das dürfte doch bloß kommen, wenn ich versuche auf lokale Dinge zuzugreifen, nicht aber auf Dateien und Verzeichnisse im Directory des Applets?

Wie kann ich denn sonst noch eine Auflistung hinbekommen?

MfG,

uepselon

  1. Moin!

    ich habe ein Applet erstellt welches Thumbnails von Bildern anzeigen kann. Nun will ich es soweit automatisieren, das es sämtliche Bilder in einem Angegebenen Verzeichnis darstellt.

    Das Verzeichnis ist _wo_? Auf dem Server, genau wie das Applet? Und das Applet wird _wo_ ausgeführt? Im Browser?

    Das einzige Problem hierbei ist, das ich den Inhalt des Verzeichnisses nicht auflisten kann. Habe folgendes versucht:

    File dir = new File("images/path/");

    String[] filenames = dir.list();

    Ich möchte mich für meine Unkenntnis der Sprache Java entschuldigen, aber mir scheint (sofern ich da nicht irgendeinen geheimen, aber in Java total normalen Mechanismus übersehe), dass du damit versuchst, auf dem Client ein Verzeichnis zu öffnen, und nicht auf dem Server.

    Als Fehelr kommt ein Security Alert im Status-Line des Browsers. Warum? Das dürfte doch bloß kommen, wenn ich versuche auf lokale Dinge zuzugreifen, nicht aber auf Dateien und Verzeichnisse im Directory des Applets?

    Das erscheint mir dann nur noch logisch. Bedenke: Das Applet läuft im Browser. Und nicht auf dem Server.

    Wie kann ich denn sonst noch eine Auflistung hinbekommen?

    Indem du HTTP mit dem Webserver sprichst und ihn dazu veranlaßt, ein Verzeichnislisting auszugeben.

    Oder habe ich dich in dieser Hinsicht mißverstanden und du willst per Java lokal arbeiten (Protokoll "file:")? Dann gibts zwar keinen Webserver, aber immer noch dieselben Sicherheitsmechanismen. Hoffe ich jedenfalls.

    - Sven Rautenberg

    --
    ss:) zu:) ls:[ fo:} de:] va:) ch:] sh:) n4:# rl:| br:< js:| ie:( fl:( mo:|
    1. Hi,

      Das Verzeichnis ist _wo_? Auf dem Server, genau wie das Applet? Und das Applet wird _wo_ ausgeführt? Im Browser?

      Jepp.

      Ich möchte mich für meine Unkenntnis der Sprache Java entschuldigen, aber mir scheint (sofern ich da nicht irgendeinen geheimen, aber in Java total normalen Mechanismus übersehe), dass du damit versuchst, auf dem Client ein Verzeichnis zu öffnen, und nicht auf dem Server.

      Naja, ich kann ja auch die Bilder auf dem Server im Applet öffnen, dort funktioniert die Pfadangabe komischerweise, aber den Inhalt des Verzeichnisses muss ich doch auch irgendwie auflisten können?

      Ich will eigentlich keinen umständlichen HTTP-Request machen wenns mit dem File Objekt in 2 Zeilen geht.

      Gruß,

      ueps

      1. Moin!

        Das Verzeichnis ist _wo_? Auf dem Server, genau wie das Applet? Und das Applet wird _wo_ ausgeführt? Im Browser?

        Jepp.

        Gut, dann habe ich nicht allzu falsch gelegen. :)

        Ich möchte mich für meine Unkenntnis der Sprache Java entschuldigen, aber mir scheint (sofern ich da nicht irgendeinen geheimen, aber in Java total normalen Mechanismus übersehe), dass du damit versuchst, auf dem Client ein Verzeichnis zu öffnen, und nicht auf dem Server.

        Naja, ich kann ja auch die Bilder auf dem Server im Applet öffnen, dort funktioniert die Pfadangabe komischerweise, aber den Inhalt des Verzeichnisses muss ich doch auch irgendwie auflisten können?

        Es gibt einen garvierenden Unterschied im HTTP-Universum zwischen einer Datei und einem Verzeichnis.

        Erstens: Es gibt beides nicht, es gibt nur Ressourcen.

        Zweitens: Wenn es aus der Sicht von HTTP keinen Unterschied zwischen Verzeichnis und Datei gibt, dann sollten die Mechanismen, die deine Bilder laden, auch zum Laden eines Verzeichnisses geeignet sein. Das Laden eines Dateisystem-Verzeichnisses kann jedenfalls nicht funktionieren, weil eben HTTP gesprochen werden muß.

        Drittens: Der Server muß logischerweise irgendwie zur Auslieferung eines Verzeichnisses überredet werden. Dieses wird standardmäßig aus HTML-Code bestehen, so dass du es parsen müßtest. Wahlweise kannst du natürlich auch ein Skript ansprechen, was dir text/plain zurückgibt und in jeder Zeile eine gefundene Datei. Natürlich kannst du auch eine fest definierte und von dir manuell angelegte und gepflegte Datei laden, in der diese Information drinsteht.

        Ich will eigentlich keinen umständlichen HTTP-Request machen wenns mit dem File Objekt in 2 Zeilen geht.

        Du hast keine Files, du hast HTTP-Ressourcen. Behandle sie entsprechend.

        - Sven Rautenberg

        --
        ss:) zu:) ls:[ fo:} de:] va:) ch:] sh:) n4:# rl:| br:< js:| ie:( fl:( mo:|