Alexander (HH): Wie Dateien/Verzeichnis Liste von Client an Server schicken?

Beitrag lesen

Moin Moin!

Ja, die Web-Anwendung soll nur im Intranet eingesetzt werden. Der Benutzer ist in dem Falle daran interessiert, mir möglichst viel über seine lokalen Dateien mitzuteilen, von daher erschnüffel ich mir da keine Informationen. Er wählt bewusst Dateien aus, um mir mitzuteilen, welche dies sind und wo sie sich bei ihm befinden.

Und wozu? Was soll mit den Dateien passieren?

Eigentlich wäre der absolute Pfad nicht unbedingt von Nöten, aber zumindest der Ordnername, in dem sich die ausgewählten Dateien befinden. Wenn der Benutzer einen ganzen Ordner markiert, dann natürlich dessen Name.

Die ausgewählten Dateien sollen nicht hochgeladen werden, wir brauchen nur die Liste.

Wofür?

Mir geht es im Wesentlichen um ein besonders einfach und schnell zu bedienendes UI. Daher wäre sowas wie Total Commander super: auf der linken Seite die lokalen Verzeichnisse, der Benutzer wählt Dateien oder Ordner, die in ein Div auf der rechten Seite gezogen werden können und dort einfach nur als Liste erscheinen. Unten dann einen Submit-button, der am Ende der Auswahl die Liste losschickt.

Toll wäre es, wenn ich auf Java Applets oder Browser Plugins verzichten könnte, das dies zu umständlich einzurichten ist auf Clientseite.

Nö, nicht wirklich. Java-Runtime ist meistens vorhanden, das Applet verteilst Du einfach vom Webserver. Plugin kannst Du testen, falls nicht vorhanden, kannst Du es ebenfalls vom Webserver mehr oder weniger automatisch nachinstallieren. Exakt so geht VMware z.B. beim VMWare Server 2 vor.

Gibt es eine Möglichkeit zur Kombination von Flash und JavaScript?

Natürlich, z.B. http://aktuell.de.selfhtml.org/artikel/programmiertechnik/liveconnect/

Kann man da was machen? Wie würde ein Ansatz aussehen?

Flash-Doku runterladen und herausfinden, wie man aufs lokale Dateisystem zugreifen kann.

Und was ist mit HTML5? Da gibt es doch jetzt multiple file upload, oder? Mit <input type=multifile../> glaub ich... Kann man da auch nur den ausgewählten Dateinamen auslesen??

HTML5 ist noch nicht fertig. Was implementiert ist, und wie, und wie weit, hängt vom jeweiligen Browser ab.

Diese Möglichkeit wäre umständlich, weil der User für jede Auswahl neu auf den "Browse.."-Button klicken müsste. Und in unserem Fall werden viele viele Dateien ausgewählt..

Daher dachte ich an so einen Total Commander Klon... Also von der UI her..

Im Browser. Klar. Geht's noch umständlicher?

Bei den PowerToys zu Windows 95(!) gab es ein nettes kleines Tool namens "Send to Clipboard as Name", letztlich eine DLL, die sich tief im System verankert hat und im Windows-Explorer das Kontext-Menü unter "Senden an" / "Sent to" um einen Eintrag "Clipboard as Name" erweitert hat. Man markiert eine oder mehrere Dateien, öffnet per Rechtsklick das Kontextmenü, navigiert über "Senden an" nach "Clipboard as Name", klickt das wieder an, und schon sind die vollständigen(!) Namen aller Dateien im Clipboard, von wo aus man sie irgendwo einfügen kann. Das funktioniert auch mit späteren Versionen von Windows noch, lästigerweise installiert das Toy auch noch jede Menge anderen Kram, der teilweise stört.

Es geht auch noch etwas einfacher: Ein Programm, dass direkt oder als Verknüpfung im Ordner SentTo des Benutzers ("C:\Documents and Settings\JoeAverage\SendTo") liegt, erscheitn automatisch im "Senden an"-Menü, wird das Programm von dort aus aufgerufen, bekommt es das/die ausgewählten Programme als Kommandozeilenparameter übergeben.

"Send To Clipboard as Name" ist bei mir mittlerweile ein C-Programm mit knapp 100 Zeilen, das im wesentlichen die Win32-API-Funktionen GlobalAlloc, GlobalLock, GlobalUnlock, OpenClipboard, EmptyClipboard, SetClipboardData, und CloseClipboard aufruft (in dieser Reihenfolge).

Alexander

--
Today I will gladly share my knowledge and experience, for there are no sweeter words than "I told you so".