Kategorie: Dateizugriff
Frage: Wie kann ich Bilder dynamisch durch ASP an den Browser senden?
Sicherlich haben Sie auch schon vor dem Problem gestanden, dass Sie Ihren Usern gerne
Dateien bereitstellen, den direkten Weg über den URL der Grafik aber unterbinden möchten.
Dies kann zum Beispiel der Fall sein, wenn Sie ein geschütztes Grafikarchiv anbieten und die
Downloads selbst kontrollieren möchten. (Sie können das Beispiel natürlich auch für alle
anderen Dateiarten verwenden)

Im nachfolgenden Beispiel senden wir dem Browser eine GIF-Datei, die im Ordner
"<aktuellerpfad>/images/" liegt und "test.gif" benannt wurde.

[showimage.asp]
<%
Response.Buffer = True
Response.Clear

' --- Angeben des Cachingverhaltens
Response.Expires = 0

' --- Ausgabe des MIME-Typs
Response.ContentType = "image/gif"

' --- Angeben des Dateinamens der Grafik
Dim strFileName
strFileName = "test.gif"

' --- Ermitteln des physischen Dateipfads
Dim strMyPath
    strMyPath   = Server.MapPath("./images/") & "\" & strFileName

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

    ' --- Ermitteln der Dateigroesse
    Set objFile = objFileSys.GetFile(strMyPath)
        FileSize = objFile.Size
    Set objFile = Nothing

    ' --- Öffnen der Datei
    Set objFile = objFileSys.OpenTextFile(strMyPath, 1, false, -1)

        ' --- Auslesen des Dateinhalts und Ausgabe
        ' --- per Response.BinaryWrite
        Response.BinaryWrite(objFile.Read(FileSize))

    Set objFile = Nothing

Set objFileSys = Nothing

' --- Senden der Ausgabe an den Browser
Response.Flush
%>

Diese ASP-Datei können Sie entweder direkt als Ziel-URL im Browser (also als normalen Link)
oder auch als Referenz eines IMG-Tags (z.B.: <img src="showimage.asp?IMG=1">) angeben.

Beispiel bei Einbindung der ASP-Seite als Referenz des IMG-Tags:


Hier können Sie die Beispieldatei http://www.aspfaq.de/ex_scripts/image.asp direkt aufrufen.
Das Beispiel referenziert die Grafik http://www.aspfaq.de/ex_scripts/images/aspfaq_button.gif


Die Datei kann aber aufgrund der Servereinstellungen nicht direkt abgerufen werden.
Die ASP-Datei kann den Inhalt der Datei aber trotzdem an den Browser senden, da diese
die Datei über das FSO ausliest.

Copyright 2000 - 2024 by Stefan Falz Webconsulting