Peter Bucher - Mein Experiment, meine Spielereien, meine Welt...   ·   Stefan Falz   ·   Jürgen Gutsch   ·   Golo Roden   ·   ASP.NET Zone   ·   Microsoft ASP.NET
Willkommen bei ASP.NET Zone. Anmelden | Registrieren | Hilfe

Dateipfad ohne Upload der Datei auslesen

Es gibt Leute, die haben Anforderungen, dann gibt es aber auch noch Leute die haben spezielle Anforderungen ;-)

Wenn man den Benutzern seiner Webseite die Möglichkeit eröffnen möchte, lokal Dateien auszuwählen, um die Pfade dann in der Webanwendung zu speichern / nutzen, kann man nicht einfach auf <asp:FileUpload [...] zurückgreifen, hier müssen alte Mittel herhalten. Wie Bernd schon schön gesagt hat, "back to the roots" :-)

Beim serverseitigen FileUpload Control oder einem <input type="file" [...] dass serverseitig läuft, fügt ASP.NET automatisch das "enctype" Attribut mit dem Wert "multipart/form-data" zum Formular hinzu.

Hinweis:
Im "enctype" Attribut wird der Mimetyp mit dem das Formular versendet wird, festgelegt.
Standardmässig steht diese Attribute auf "application/x-www-form-urlencoded", wenn man allerdings per POST einen Dateiupload ermöglichen will, muss der Wert auf "multipart/form-data" stehen.

Wenn dieses Attribut gesetzt ist, werden die Dateien übertragen, und genau das wollen wir in diesem Fall nicht.
Ist dieses Attribut (wie standardmässig), nicht gesetzt, wird anstelle der Datei und des Dateipfades, nur der Dateipfad per POST gesendet.

Erreichen können wir das mit einem normalen <input type="file" [...] Tag, das nicht serverseitig deklariert ist.
Man muss noch darauf achten, dass man hier das "name" Attribut zur Identifizierung benutzt, weil das anschliessende Request.Form[] auf dieses zugreift.

Der ASPX Teil kann ungefähr so aussehen:

<input type="file" name="filePath" />
<asp:Button ID="btnSubmit" Text="PostBack..." runat="server" />

Und im Codebehind Teil kann der Wert per Request.Form[] abgerufen und anschliessend benutzt werden:

'// Beispiel, Wert in ein Label schreiben
this.lblResult.Text = Request.Form["filePath"];

Weiterführende Links:

Veröffentlicht Mittwoch, 2. Mai 2007 19:56 von Peter Bucher
Abgelegt unter: , , ,

Kommentare

# re: Dateipfad ohne Upload der Datei auslesen

Schöner Beitrag, man sollte viel öfters auf die armen Randgruppen mit den speziellen Anforderungen eingehen ;)

Ernsthaft, wollte noch einen kleinen Zusatz loswerden, wo und warum so etwas wirklich sinn macht.

In Firmennetzwerken gibt es häufig eine 'altbackene Filestruktur' in der wichtige Dokumente oder Informationen abgelegt werden. Ein wirkliches Intranet oder ein Portal als 'einheitliche Schnittstelle' zwischen allen Mitarbeitern und den Informationen (in der Filestruktur, Datenbanken und sonst wo) kommt oft erst später hinzu.

Um nun den Übergang zu Portalsystemen und Workflows zu vereinfachen ist es sinnvoll auf die vorhandenen Strukturen aufzusetzen und diese (gegebenenfalls) neu zu organisieren, anstatt direkt auf ein komplett neues System umzusteigen. Man muss sich hier im Klaren sein, dass ein solches System einen firmenweiten, gravierenden Umbruch bedeuten kann (ähnlich dem Umstieg von Papierakten zu elektronischen Akten). Mit dem Speichern der Pfade, anstelle eines Uploads, wird eine doppelte Datenhaltung vermieden und gewohnte Prozesse und Anwendungen können noch weiterlaufen (und müssen nicht sofort auf einen Portalbetrieb umgestellt werden). Da die Pfade zu den Dateien im Firmennetzwerk gespeichert werden, ist es nun möglich Schritt für Schritt einzelne Bereiche auf das neue System umzustellen und die verbundenen Dateien dann auch automatisiert in das neue System zu überführen.

Der charmante Nebeneffekt eines solchen Vorgehens ist, das Skeptiker (meist ältere Mitarbeiter)  ihr bisheriges Arbeiten beibehalten können und das neue System erst einmal beschnuppern können. Die Erfahrung hat gezeigt, dass sich die Skeptiker hauptsächlich durch ihre Kollegen - die ihre Arbeit viel schneller und einfacher mit dem neuen System erledigen können – zur „motivierten“ Nutzung der neuen Systeme bringen lassen.

Dienstag, 15. Mai 2007 12:32 by Atlan

# re: Dateipfad ohne Upload der Datei auslesen

> Schöner Beitrag, man sollte viel öfters auf die armen Randgruppen mit den speziellen Anforderungen eingehen ;)

hihi, wie wahr :))

Danke für deinen Kommentar Bernd!

Sonntag, 20. Mai 2007 23:55 by Peter Bucher
Anonyme Kommentare sind nicht zugelassen