<%
' ScriptTimeout und Session.Timeout setzen, sodass ein Upload 
' nicht durch eine Timeout des Scripts unterbrochen wird.
Server.ScriptTimeout = 600   ' Sekunden
Session.TimeOut = 20      ' Minuten

Set Post = Server.CreateObject("ActiveFile.Post")

' Pfad zum Ablegen temporaerer Dateien angeben
strTempPfad = "C:\TEMP"

' Entferne "resource fork" bei Upload von MacBinary Dateien
Post.CheckMacBinary = True

' Dateigroesse begrenzen auf 50 KB
Post.MaxFileSize  = 50000   ' Bytes

' Initiiere Upload
Post.Upload strTempPfad, 0
Post.Flush

' Referenz zu upgeloadeter (temporaerer) Datei
Set UploadFile = Post.FormInputs("DATEI1").File

' Pruefen ob Datei empfangen
If isObject(UploadFile) And _
   Not(StrComp(TypeName(UploadFile),"Nothing",1) = 0) Then
   ' Pruefen ob Datei auch Daten enthaelt
   If UploadFile.Size > 0 Then
      strUserFileName = Post.FormInputs("DATEI1").Value
      strFileContentType = Post.FormInputs("DATEI1").ContentType
      Response.Write "Datei " & strUserFileName & "' " & _
        " vom Typ '" & strFileContentType & "' empfangen.<BR>"
      ' Eigentlichen Dateinamen extrahieren:
      strFileName = Mid(Replace(strUserFileName,"/","\"), _
         InstrRev(strUserFileName,"\")+1)

      ' Physikalischer Pfad zur Datenbank
      strScriptName = Request.ServerVariables("Script_Name")
      strCurrentDir = Left(strScriptName, InstrRev(strScriptName,"/"))
      
      strDatabase = Server.MapPath(strCurrentDir & "uploadDB.mdb")
      strUserName = ""
      strPasswort = ""
      ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
         "Data Source=" & strDatabase & ";User ID=" & strUserName & _
         ";Password=" & strPasswort & ";"
   
      ' Datenbankverbindung oeffnen:
      Set conn = Server.CreateObject("ADODB.Connection")
      conn.Open ConnectionString
   
      ' Recordset fuer Zugriff auf Tabellendaten oeffnen:
      Set rs = CreateObject("ADODB.Recordset")
      rs.CursorLocation = 2   ' adUseServer
      rs.CursorType     = 1   ' adOpenKeyset 
      rs.LockType       = 3   ' adLockOptimistic
      
      ' Verbindung zu Tabelle tUpload aufbauen:
      strSQL = "SELECT * FROM tUpload WHERE 1 = 0"
      rs.Open strSQL, conn
      
      ' Datensatz in Tabelle tUpload einfuegen:
      rs.AddNew 
      rs("Dateiname") = strFileName
      rs("DateiContentType" ) = strFileContentType
      
      ' Upgeloadete Datei in Field Datei speichern
      UploadFile.Import rs("Datei")
   
      rs.Update
      ' Auslesen der generierten ID:
      lngID = rs("ID")
      
      ' Schliessen des Recordsets und der Connection
      rs.Close
      conn.Close
      Set rs = Nothing
      Set conn = Nothing
      
      Response.Write("Die Datei '" & strFileName & "' " & _
       "wurde in der Datenbank unter der ID = " & lngID & _
       " gespeichert.<br>" & vbCrLf)
       
       Response.Write("Klicken Sie " & _
         "<a href=""download.asp?ID=" & lngID & """>hier</a> " & _
         "(download.asp?ID=" & lngID & ") um die Datei wieder " & _
         "aus der Datenbank auszulesen. Die Datei wird " & _
         "angezeigt bzw. downgeloadet.<br>" & vbcrlf)
   End If
   ' Loesche temporaere Datei
   UploadFile.Delete
Else
   ' Keine Datei empfangen
   Response.Write "Es wurde keine Datei empfangen..."
End If   

Set UploadFile = Nothing
Set Post = Nothing
%>