Load me up Druckversion
ASP Fileupload
ohne Komponenten
Seite
(1) [2] [3] [4] [5] [>
Do, 04.04.2002
Autor: Olaf Lüder

Überblick

Mit dem im folgenden vorgestellten Objekt ist es möglich, Dateien per HTTP-Formular (nach RFC 1867) auf einen Web-Server heraufzuladen. Obwohl der Sourcecode bei uns nie wirklich für diesen Zweck zum Einsatz kam, hat er sich doch immer als sehr sinnvoll erwiesen - erst diente er als abschreckendes Beispiel für schlechten Programmierstil, später als Beispiel für unkonventionelle aber performante Programmierung mit JScript und zum Schluß zur Demonstration der Erstellung eigener Objekte in JScript.
Lassen Sie sich aber dadurch nicht verunsichern, Sie können den Code auch ganz einfach zum schnellen, unkomplizierten Upload von Dateien verwenden... ;-)

Wie funktionieren Datei-Uploads eigentlich?

Um Dateien per HTTP-Formular versenden zu können, müssen die zu übertragenden Daten vom Browser als 'multipart/form-data' (RFC 1867) verpackt werden, dies basiert auf den allgemeinen Regel für Multipart-MIME-Typen, wie sie im RFC 1523 beschrieben sind.

Mitgeteilt wird dem Browser dies über die Angabe des encoding types (ENCTYPE); eine entsprechende HTML-Seite könnte wie folgt aussehen:

<html>
  <head>
    <title>Upload-Test</title>
  </head>
  <body>
    <FORM NAME="MyForm" METHOD="post" ACTION="upload.asp" ENCTYPE="multipart/form-data">
      <INPUT TYPE="text" NAME="Vorname" SIZE="20"><br>
      <INPUT TYPE="text" NAME="Nachname" SIZE="20"><br>
      <INPUT TYPE="File" NAME="Bild"><br>
      <INPUT TYPE="Submit" VALUE="Upload">
    </FORM>
  </body>
</html>

Ein 'multipart/form-data'-Dokument besteht aus verschiedenen Teilen, die durch eine sogenannte Boundary voneinander getrennt sind und jeweils eine Header-Zeile mit folgendem Aufbau enthalten:

content-disposition: form-data; name="feld1"; [filename="dateiname1"]

Die Angabe des 'filename' ist hierbei optional.
Bei Dateien folgt in der nächsten Zeile der Content-Type und nach einer Leerzeile der eigentliche Dateiinhalt, bei einem normalen Formularelement entfällt einfach der Content-Type. Ein typisches Beispiel, das der Server vom Browser beim Senden des obigen Formulares empfängt, könnte also wie folgt aussehen:

Content-Type: multipart/form-data; boundary=---------------------------7d22e3382244

-----------------------------7d22e3382244
Content-Disposition: form-data; name="Vorname"

Olaf
-----------------------------7d22e3382244
Content-Disposition: form-data; name="Nachname"

Lüder
-----------------------------7d22e3382244
Content-Disposition: form-data; name="Bild"; filename="C:\Bilder\Bild01.jpg"
Content-Type: image/pjpeg

<Inhalt der Datei...>
-----------------------------7d22e3382244--

© 2001, 2002 NOGETEC GmbH - Alle Rechte vorbehalten. - Impressum
Der Inhalt dieser Seiten ist urheberrechtlich geschützt. Texte, Grafiken und Dateien dürfen ohne unsere schriftliche Genehmigung - auch auszugsweise - nicht kopiert, vervielfätigt oder vertrieben werden.
Übersicht
13 Beiträge
in 11 Kategorien

ASP classic (7)
ASP.NET (0)
Komponenten (2)
ISAPI-Filter (4)
Konfiguration (0)
No more Cookies
ASP Sessions
ohne Sitzungscookies

Sie nutzen das integrierte Session-Objekt?
Ihre Kunden akzeptieren aber keine Cookies?

Wir haben die Lösung...
Load me up
ASP Fileupload
ohne Komponenten

Sie möchten Dateien auf den Server heraufladen,
ohne Komponenten zu installieren?

Gar kein Problem...
Little Secrets
Dateinamen & Parameter
im URL verbergen

Verschiedene Pfade auf eine Datei abbilden...?
Skriptnamen weglassen, Parameter verstecken...?

So funktioniert's ...
Lost in Space
Recordsets
auf Abwegen

Sie nutzen Datenbanken & ADO-Recordsets...?
Die Performance ist aber nicht befriedigend...?

Dann lesen Sie weiter...
Subdomains
Subdomains einrichten
ohne viel Aufwand

Sie möchten Subdomains verwenden, mit eigenen Verzeichnissen aber ohne extra Host-Header oder Web-Sites einzurichten?

Wir zeigen Ihnen wie...