Java Applet zum Verzeichnis auslesen und Dateinamen als Link darstellen

Firestorm-

Lt. Commander
Registriert
Okt. 2006
Beiträge
2.015
Tag zusammen.

Im Zuge eines Projekts brauch ich eine Idee zur Umsetzung folgendes Problems:
Geschrieben werden soll ein Applet, welches ein auf dem Server liegendes Verzeichnis ausliesst, dessen Inhalt, also in dem Verzeichnis befindende Dateinamen darstellt und zwar als Verknüpfung so dass diese runtergeladen werden können. Dies soll innerhalb des Applets geschehen.

Ein Verzeichnis auslesen an sich ist ja dank der File-Klasse in Java kein Problem. Was mir eher Sorgen bereitet sind die Sicherheitsregelungen des SecurityManagers von Java, bzw. des Browsers, sowie die Umkonvertierung/Erstellung eines Links aus dem Dateinamen/Pfad innerhalb des Applets.

Wie generiere ich aus einem Pfad einen Link, sodass das gewünschte File auf Mausklick runtergeladen werden kann?

Ausserdem: Welche Werte des Java Security Managers sollten hierbei angepasst werden?

Wie gesagt, das Grundgerüst zum auslesen innerhalb eines Applets(momentan noch lokal) steht schon, das bereitet ja nicht sonderlich viel Probleme und ist in 3 Minuten gecoded... Es geht mir nur um die sichere Integration/Umsetzung im Web, sowie eben diese Verlinkung...

Hoffe ihr könnt mir weiterhelfen.

Grüße, Fire
 
Hallo!

Dein Vorhaben sollte als Applet nicht realisierbar sein. Ein Applet wird meist in Form eines .jar Archivs heruntergeladen und dann auf dem Rechner des Betrachters ausgeführt. Es besteht anschließend also keine Verbindung mehr zum Server (außer über direkte Links). Das Auslesen des Verzeichnises auf dem Server ist daher ohne weiteres (zusätzliche Skripte etc.) nicht möglich. Versuch es mal mit einem Applet (dann aber ohne GUI, z.B. mit Swing).

Gruß,
tomcat83
 
Eine GUI hab ich hierbei eh nicht vor zu verwenden... Schlichte Methoden von Graphics, also z.b. drawString(...) sollten doch kein Problem sein...

Gibt es noch andere Möglichkeiten mein Vorhaben sinnvoll und effizient umzusetzen?
 
Ich verstehe dein Vorhaben noch nicht ganz. Du müsstest wie der Vorredner schon sagte erstmal das Directorylisting vom Server zum Client bringen. Das Format dafür ist relativ egal. Allerdings muss da eben serverseitig irgendwas laufen (J2SE, PHP, cgi oder was auch immer).
Macht das Applet eigentlich noch etwas anderes als das Listing? Es gibt übrigens auch eine wget-Klasse (=>google) so dass du direkt übers Applet downloaden könntest.
Zur Darstellung kannst du in Java grundsätzlich auch HTML nutzen: http://java.sun.com/docs/books/tutorial/uiswing/components/html.html
Könnte in dem Zusammenhang auch interessant sein http://www.developers-guide.net/forums/1837,jtextpane-hyperlink-im-browser-anzeigen
 
Zuletzt bearbeitet:
Hallo @all,

also mich beschäftigt momentan genau die Aufgabe von <i>Firestorm</i>. Wär nett, wenn es hier schon Ergebnisse gibt ;-)


Anbei - die Aufgabe ist (jedenfalls nach meinem Kenntnisstand) sehr wohl durch ein Applet zu bewältigen.... Die Lösung sollte der Appletcontext sein (Stichwort Codebase).

Allerdings ist der Ansatz File-Objekte zu nutzen eher nicht Sinnvoll
 
Naja sagen wirs so: es gibt Mittel und Wege diese Aufgabe mit Applets zu lösen... Das ganze würde in Zusammarbeit mit File-Objekten laufen die per RMI als request zum Server geschickt werden, und als befülltest File Objekt Array als response vom Server zurückkommen. Die Sache ist nur, dass zum einen unnötig viel Traffic verursacht wird und somit die ganze Geschichte eher uneffizient wird. Zum anderen gibt es einfach hierfür bessere Technologien, beispielsweise PHP, speziell dann wenn die Auflistung in ein HTML File integriert werden soll.

Ich hab es zwar mit Applets und RMI soweit programmieren können, musste aber wie gesagt feststellen dass die Effizienz eher zu wünschen übrig gelassen hat, deshalb bin ich in dem Fall auf PHP umgestiegen. Eine andere Lösung wäre auch noch der Einbau einer entsprechenden .htaccess, die einfach nur ein File-Listing innerhalb deines Directories betreibt und dies innerhalb von einem IFRAME oder ähnlichem ausgibt.

Code:
<?php

$verzeichnisName = "/deinVerzeichnisName";  
$verzeichnis = openDir("$verzeichnisName");

while ($datei = readDir($verzeichnis)) { 
	if ($datei != "." && $datei != ".." && $datei != ".htaccess") { // höhere Verzeichnisse verweigern
	echo "&omicron;&nbsp;<a href=\"$verzeichnisName/$datei\">$datei</a><br>\n"; 
 }
}
closeDir($verzeichnis); 

?>

Wie gesagt, kurz, knapp und effizient.
 
Zuletzt bearbeitet:

Ähnliche Themen

Zurück
Oben