> Det lyder som den rigtige løsning. Så hvis der er nogen, der kender en
> metode??
Du skal bruge ADODB.Stream:
<%
Option Explicit
Server.ScriptTimeout = 180
Dim strFileName, strFileExt, strFilePath
strFileName = Request.QueryString("f")
strFileExt = Request.QueryString("e")
strFilePath = "d:\files\"
Dim objStream
Set objStream = CreateObject("ADODB.Stream")
objStream.Type = 1
objStream.Open
objStream.LoadFromFile strFilePath & strFileName & "." & strFileExt
Dim strContentType
Select Case LCase(strFileExt)
Case "doc" strContentType = "application/msword"
Case "exe" strContentType = "application/octet-stream"
Case "gif" strContentType = "image/gif"
Case "jpg" strContentType = "image/jpeg"
Case "mdb" strContentType = "application/x-msaccess"
Case "pdf" strContentType = "application/pdf"
Case "png" strContentType = "image/png"
Case "txt" strContentType = "text/plain"
Case "xls" strContentType = "application/vnd.ms-excel"
Case "zip" strContentType = "application/x-zip-compressed"
End Select
Response.ContentType = strContentType
Response.BinaryWrite objStream.Read
objStream.Close
Set objStream = Nothing
%>
Dette kan du så udvidde med content types som det passer dig, og du kan
indsætte din sædvanlige adgangsbeskyttelse.
Bemærk, at alle filer hentes ind i memory af IIS inden de sendes ud til
klienten, så hvis du forsøger at streame en 100 MB fil til brugeren, gemmes
denne i memory indtil du lukker ADODB.Stream igen.
På IIS 6 er den maksimale størrelse på bufferen 4 MB, men dette kan ændres
ved at køre følgende kommando fra en dos prompt:
cscript c:\inetpub\adminscripts\adsutil.vbs set w3svc/root/AspBufferingLimit
[bytes]
Udskift [bytes] med den ønskede størrelse. Bemærk, at tallet skal være en
integer.
Læs mere på
http://www.microsoft.com/technet/treeview/default.asp?url=/technet/prodtechnol/windowsserver2003/proddocs/standard/ref_mb_aspbufferinglimit.asp.
Du kan evt. også prøve at disable buffering.
Response.Buffer = False
Håber du kan bruge det til noget.
--
Mvh. Jesper