Fileupload
Heimo Zöchling
- programmiertechnik
Ich wüßte gerne, wie man eine zum IIS geschickte Datei mit VB ausliest und auf die locale HD schreibt.
mfg Heimo
Hi,
Ich wüßte gerne, wie man eine zum IIS geschickte Datei mit VB ausliest und auf die locale HD schreibt.
mit VB kenne ich mich nicht aus, aber für Perl gibt es ein sehr leistungsfähiges Modul namens CGI.pm. Damit kann man auch die Daten eines <input type="file"> auswerten und als Datei abspeichern. Muß es wirklich zwingend VB sein?
Cheatah
Ich wüßte gerne, wie man eine zum IIS geschickte Datei mit VB ausliest und auf die locale HD schreibt.
mit VB kenne ich mich nicht aus, aber für Perl gibt es ein sehr leistungsfähiges Modul namens CGI.pm. Damit kann man auch die Daten eines <input type="file"> auswerten und als Datei abspeichern. Muß es wirklich zwingend VB sein?
Ich bin auch kein VB-Benutzer, habe aber (eine frühe Version von) CGI.pm mal in unser Produkt eingebaut und dabei kommentiert, weiß also ein wenig, wie so ein Upload im Detail funktioniert.
Als grober Überblick, was man tun müßte (falls es in VB nicht ebenso einen fertigen Modul geben sollte):
Der Inhalt einer solchen CGI-Multipart-Meldung sieht ungefähr so aus: (hoffentlich bleibt der Umbruch erhalten ...)
-----------------------------31509176334042
Content-Disposition: form-data; name="Sprache"
deu
-----------------------------31509176334042
Content-Disposition: form-data; name="UploadDatei"; filename="C:\TEMP\test.cfg"
Dies ist der Inhalt der Datei
-----------------------------31509176334042
Content-Disposition: form-data; name="Action"
Start
-----------------------------31509176334042--
("Sprache" ist eine von mir mitgelieferte Environment-Variable, die mit dem eigentlichen Datei-Inhalt nichts zu tun hat, aber von meinem CGI-Programm ausgewertet wird, um die Sprache auszugebender Meldungen zu bestimmen.
Mein Aufruf lief unter Verwendung von Netscape 4.5 und WebSite 1.1 unter Windows NT 4.0 SP4.
Wenn man den Webserver CGI-Aufrufe tracen läßt, bekommt man Ein- und Ausgaben von CGI-Aufrufen in separate Dateien geschrieben und kann in aller Ruhe ansehen, was genau drin steht.)
Details, wie diese Abschnitte in allgemeiner Form aussehen können, stehen in der CGI-Spezifikation. Ich habe die Erfahrung gemacht, daß z. B. Netscape 3 und 4 unterschiedlich viele sonstige Informationen mitliefern (das Multipart-Paket sieht also nicht immer gleich aus), parse deshalb nach einem Element, das den Parameter "filename" enthält und werfe den Rest weg ...
Die Abschnitte zu parsen geht mit einer mächtigen String-Analysesprache wie Perl sehr elegant, könnte mit Basic allerdings harte Arbeit sein.
[...]
arrrrrrg, ein ASP-Fan;))
Es gibt ein fertiges serverseitiges ActiveX-Modul, das entweder free ist oder aber nur ein paar Dollar kostet, dafuer aber sehr komfortabel ist.
Falls das Problem noch nicht geloest ist, schreib mal 'ne Mail, dann suche ich hier. Aber: Schreib was schoenes ins subject, sonst gehtse unter im Wust;))
cul
Falk Herrmann
--
pgp/kontakt: http://falk.herrmann.org
Ich wüßte gerne, wie man eine zum IIS geschickte Datei mit VB ausliest und auf die locale HD schreibt.
mfg Heimo
So direkt gehts unter VBScript wohl leider nicht. Es gibt aber verschiedene (Shareware) ActiveX Controls, z.B. "FileUp" etc. Finden kannst Du sie unter "http://www.activeserverpages.com"
Mfg Christoph Ruhnke