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 10.07.2002
Frage: Wie greife ich auf Textdateien auf dem Server zu?
ASP stellt das sogenannte FileSystemObject (oft auch FSO genannt) für den Dateizugriff auf dem Server
zur Verfügung. Vorab eine Anmerkung: Das FSO ist für das Arbeiten mit Textdateien ausgelegt und hat keine
direkte Unterstützung für Binärdateien. Um mit Binärdateien zu arbeiten, sind Umwege erforderlich, auf die in
einem anderen Beitrag eingegangen wird.


Hinweis: Arbeiten Sie nicht mit absoluten Pfaden, ausser wenn es absolut notwendig ist. Um aus
relativen Pfadangaben absolute Pfadangaben zu erzeugen, stellt ASP Ihnen die Funktion Server.MapPath
zur Verfügung.

Beispiel: Sie befinden sich im Verzeichnis http://www.server.tld/verzeichnis/ und dieses Verzeichnis
liegt physikalisch gesehen in D:\inetpub\wwwroot\verzeichnis\. Dann liefert Ihnen die Funktion
Server.MapPath("./") den Wert D:\inetpub\wwwroot\verzeichnis\ zurück. Da zu 99% die Einstellungen
auf Ihrem Entwicklungsrechner nicht mit den Einstellungen auf dem Internetserver übereinstimmen,
würden Skripte, die absolute Pfade verweden, Fehler erzeugen.

Um Ihnen aber möglichst einfach den Umgang mit dem FSO nahezubringen,sind einige der Beispiele
trotzdem mit absoluten Pfadangaben erstellt worden.


Hier sehen Sie ein Beispiel für das Öffnen einer bestehenden Datei und das Auslesen des
gesamten Dateiinhalts in eine Variable. Diese Variable wird danach auf dem Bildschirm ausgegeben.
[readfile.asp]
<%
' --- Instantiieren des FileSystemObjects
Set objFileSys = Server.CreateObject("Scripting.FileSystemObject")

    ' --- Öffnen der Textdatei als Verweis auf ein eigenes Objekt, dass die Datei enthält
    Set objTextStream = objFileSys.OpenTextFile("C:\templates\tpl1.txt")

        ' --- Lesen des gesamten Inhalts der Datei in eine Variable
        FileContent = objTextStream.ReadAll

        ' --- Schliessen der Datei
        objTextStream.Close

    ' --- Zerstören des Verweises auf die Datei (die Datei selbst wird natürlich nicht zerstört)
    Set objTextStream = Nothing

    ' --- Zerstören des Verweises auf das FileSystemObjects
Set objFileSys = Nothing

' --- Ausgabe des Dateiinhalts (wurde in die Variable FileContent geschrieben)
Response.Write FileContent
%>



Hier sehen Sie ein Beispiel für das Öffnen einer bestehenden Datei und das Auslesen der
ersten Zeile der Datei in eine Variable. Diese Variable wird danach auf dem Bildschirm ausgegeben.

[readline.asp]
<%
' --- Instantiieren des FileSystemObjects
Set objFileSys = Server.CreateObject("Scripting.FileSystemObject")

    ' --- Öffnen der Textdatei als Verweis auf ein eigenes Objekt, dass die Datei enthält
    Set objTextStream = objFileSys.OpenTextFile("C:\templates\tpl1.txt")

        ' --- Lesen der ersten Zeile der Datei in eine Variable
        FileFirstLine = objTextStream.ReadLine

        ' --- Schliessen der Datei
        objTextStream.Close

    ' --- Zerstören des Verweises auf die Datei (die Datei selbst wird natürlich nicht zerstört)
    Set objTextStream = Nothing

    ' --- Zerstören des Verweises auf das FileSystemObjects
Set objFileSys = Nothing

' --- Ausgabe des Inhalts der ersten Zeile der Datei (wurde in die Variable FileFirstLine geschrieben)
Response.Write FileFirstLine
%>



Hier sehen Sie ein Beispiel für das Erstellen einer Datei. Sollte die Datei existieren, wird Sie überschrieben
Danach wird eine Zeile in die Datei geschrieben.

[writeline.asp]
<%
FileLineContent = "Spalte1,Spalte2,Spalte3"

' --- Instantiieren des FileSystemObjects
Set objFileSys = Server.CreateObject("Scripting.FileSystemObject")

    ' --- Öffnen der Textdatei als Verweis auf ein eigenes Objekt, dass die Datei enthält
    Set objTextStream = objFileSys.CreateTextFile("C:\logfiles\log.txt")

        ' --- Schreiben des Dateiinhalts
        objTextStream.WriteLine FileLineContent

        ' --- Schliessen der Datei
        objTextStream.Close

    ' --- Zerstören des Verweises auf die Datei (die Datei selbst wird natürlich nicht zerstört)
    Set objTextStream = Nothing

    ' --- Zerstören des Verweises auf das FileSystemObjects
Set objFileSys = Nothing
%>



Hier sehen Sie ein Beispiel für das Öffnen einer Datei. Sollte die Datei nicht existieren, wird Sie
erstellt. Danach wird in die Datei geschrieben.

[write.asp]
<%
FileContent = "Ganz viel Text, der in die Datei geschrieben werden soll"

' --- Instantiieren des FileSystemObjects
Set objFileSys = Server.CreateObject("Scripting.FileSystemObject")

    ' --- Öffnen der Textdatei als Verweis auf ein eigenes Objekt, dass die Datei enthält
    Set objTextStream = objFileSys.OpenTextFile("C:\directory\datei.ext", 8, 1)

        ' --- Schreiben des Dateiinhalts
        objTextStream.Write FileContent

        ' --- Schliessen der Datei
        objTextStream.Close

    ' --- Zerstören des Verweises auf die Datei (die Datei selbst wird natürlich nicht zerstört)
    Set objTextStream = Nothing

    ' --- Zerstören des Verweises auf das FileSystemObjects
Set objFileSys = Nothing
%>



Hier sehen Sie ein Beispiel für das Löschen einer Datei. Sollte die Datei schreibgeschützt sein, wird
ein Fehler zurückgegeben. Dies kann aber durch die Angabe ForceDelete verhindert werden

[delete.asp]
<%
' --- Ermitteln des Dateinamens aus seinem relativen Pfad
FileName = Server.MapPath("./files/datei.txt")

' -- Soll die Datei auch gelöscht werden, wenn sie schreibgeschützt ist?
ForceDelete = True

' --- Instantiieren des FileSystemObjects
Set objFileSys = Server.CreateObject("Scripting.FileSystemObject")

    ' --- Prüfen, ob die angegebene Datei wirklich existiert
    If objFileSys.FileExists(FileName) Then

        ' --- Löschen der Datei
        objFileSys.DeleteFile FileName, ForceDelete

    End if

    ' --- Zerstören des Verweises auf das FileSystemObjects
Set objFileSys = Nothing
%>



Hier sehen Sie ein Beispiel für das Umbenennen einer Datei.

[rename.asp]
<%
' --- Ermitteln des Dateinamens aus seinem relativen Pfad
FileNameOld = Server.MapPath("./files/datei_alt.txt")

' --- Festlegen des neuen Dateinamens
FileNameNew = Server.MapPath("./files/datei_neu.txt")

' --- Instantiieren des FileSystemObjects
Set objFileSys = Server.CreateObject("Scripting.FileSystemObject")

    ' --- Prüfen, ob die angegebene Datei existiert
    If objFileSys.FileExists(FileNameOld) Then

        ' --- Umbenennen der Datei
        objFileSys.MoveFile FileNameOld, FileNameNew

    End if

    ' --- Zerstören des Verweises auf das FileSystemObjects
Set objFileSys = Nothing
%>
Sehr gut
1 2 3 4 5 6
Ungenügend
Zurück | Bisherige Aufrufe: 61113 | Bisherige Bewertungen: 148 | Durchschnitt: 1,61
Stefan Falz Webconsulting