adodb.stream - download giver korrupte filer
Nedenstående script undrer mig - jeg fik det herinde fra for meget lang tid siden, og nu da jeg er ved at lave en hel del om på mit site får jeg det testet langt bedre igennem end tidligere.Det der undrer mig er, at downloads af mp3-filer går fint - musikken kan høres som den skal. Men avi-filer og zip-filer er korrupte.
Målet var, at browseren skulle sætte en download igang, og ikke forsøge at vise filen i browservinduet - og dén del funker jo fint nok, og filerne har også de rigtige filnavne og filstørrelser - det hjælper jo så bare ikke noget hvis nogle af filerne er korupte ;)
Jeg er kun nået så langt at jeg kan teste med .zip, .mp3 og .avi - men jeg ville gerne kunne bruge det til andre filtyper også (forudser bl.a. .ac3, .jpg, .bmp)
Hvad er der galt med scriptet, og hvordan får jeg det til at virke?
Set objStream = Server.CreateObject("ADODB.Stream")
objStream.Open
Const adTypeBinary = 1
objStream.Type = adTypeBinary
'objStream.LoadFromFile Replace(filename,"/","\")
objStream.LoadFromFile url
Response.AddHeader "Content-Disposition", "attachment;filename=" & dbfilename
Select Case right(dbfilename,3)
Case "asf"
ContentType = "video/x-ms-asf"
Case "avi"
ContentType = "video/avi"
Case "doc"
ContentType = "application/msword"
Case "zip"
ContentType = "application/zip"
Case "xls"
ContentType = "application/vnd.ms-excel"
Case "gif"
ContentType = "image/gif"
Case "jpg", "jpeg"
ContentType = "image/jpeg"
Case "wav"
ContentType = "audio/wav"
Case "mp3"
ContentType = "audio/mpeg3"
Case "mpg", "mpeg"
ContentType = "video/mpeg"
Case "rtf"
ContentType = "application/rtf"
Case "htm", "html"
ContentType = "text/html"
Case "asp"
ContentType = "text/asp"
Case Else
'Handle All Other Files
ContentType = "application/octet-stream"
End Select
Response.ContentType = ContentType
Response.BinaryWrite objStream.Read
