Kategorien:
Suchbegriffe:
Suchfelder:
Suche starten
Neue Beiträge / Top 7
Alle Artikel / Liste
Bücher zu ASP/ASP.Net
Startseite / Hilfe
Fragen zu ASP/ASP.NET
Datenschutzrichtlinen
Impressum / Kontakt
Das ASP.Net Codebook. Die unentbehrliche Referenz für alle ASP.Net-Entwickler [Autoren: Stefan Falz, Karsten Samaschke]
Active Server Pages-FAQ
Active Server Pages - FAQ (v. 1.50) © 2000 - 2020 by Stefan Falz Webconsulting

GetFile! Dynamischer Dateiupload im Browser

Dateizugriff Zurück Druckversion Stefan Falz 16.05.2001
Frage: Wie kann ich prüfen, ob eine Datei auf dem Server schon existiert?
Um zu prüfen, ob eine Datei schon existiert, verwendet man am besten die FileExists-Methode
des FSO. Diese Methode gibt den Wert True zurück, wenn die Datei existiert und den Wert False,
wenn die Datei nicht vorhanden ist.

Ein häufiger Einsatzzweck dieser Methode ist z.B.: die Prüfung, ob eine Datenbank vorhanden ist,
die dann später abgefragt werden soll.

Um den Code nicht für jede Datei neuschreiben zu müssen, schreiben wir eine kleine Funktion, die
als einzigen Parameter den Dateinamen (inkl. Pfad) erhält und ebenfalls True oder False zurückgibt.
Diese Funktion wiederum wird in eine Include-Datei geschrieben, damit sie auch in anderen Seiten
eingebunden werden kann.

[checkfile.inc]
<%
Private Function CheckFile(f_name)

' --- Erzeugen eines FSO-Objekts
Dim objFileSys
    Set objFileSys = Server.CreateObject("Scripting.FileSystemObject")

    If objFileSys.FileExists(f_name) Then
        CheckFile = True
        Else
            CheckFile = False
    End if

    Set objFileSys = Nothing

End Function
%>

In einer ASP-Seite muss diese Include-Datei jetzt nur noch eingebunden werden und an der
entsprechenden Stelle noch ein Funktionsaufruf erfolgen.

[file.asp]
<!--#include file="checkfile.inc" //-->
<%
Dim FilePath
    FilePath = Server.MapPath("./") & "\database\"
Dim FileName
    FileName = "content.mdb"

    If CheckFile(FilePath & FileName) Then

        ' --- Hier erfolgt die weitere Verarbeitung, da
        ' --- die Datenbank existiert und somit auch
        ' --- angesprochen werden kann.
        ...

        Else

            ' --- Die Datei wurde nicht gefunden. Daher
            ' --- erfolgt hier eine Ausgabe der Fehlermeldung
            Response.Write "Datei: " & FilePath & FileName & " wurde nicht gefunden."

    End if
%>

Auf dem gleichen Weg kann man auch prüfen, ob ein bestimmtes Verzeichnis vorhanden ist.
Hierfür muss lediglich die Methode "FolderExists" des FSO anstatt "FileExists" verwendet werden.

[checkfolder.inc]
<%
Private Function CheckFolder(f_name)

' --- Erzeugen eines FSO-Objekts
Dim objFileSys
    Set objFileSys = Server.CreateObject("Scripting.FileSystemObject")

    If objFileSys.FolderExists(f_name) Then
        CheckFolder = True
        Else
            CheckFolder = False
    End if

    Set objFileSys = Nothing

End Function
%>

Ansonsten kann hier genauso wie mit der Prüfung, ob eine Datei existiert, verfahren werden.
Man muss natürlich einen Verzeichnispfad, keinen Dateipfad an die Funktion übergeben.

[folder.asp]
<!--#include file="checkfolder.inc" //-->
<%
Dim FolderPath
    FolderPath = Server.MapPath("./") & "\verzeichnis\"

    If CheckFolder(FolderPath) Then

        ' --- Hier erfolgt die weitere Verarbeitung, da
        ' --- das Verzeichnis existiert und somit auch
        ' --- angesprochen werden kann.
        ...

        Else

            ' --- Das Verzeichnis wurde nicht gefunden. Daher
            ' --- erfolgt hier eine Ausgabe der Fehlermeldung
            Response.Write "Verzeichnis: " & FolderPath & " wurde nicht gefunden."

    End if
%>
Sehr gut
1 2 3 4 5 6
Ungenügend
Zurück | Bisherige Aufrufe: 19406 | Bisherige Bewertungen: 32 | Durchschnitt: 1,19
Stefan Falz Webconsulting