webForumDet fria alternativet

Downloadscript, inte öppna i browsern?

ASPur ASP

11 svar · 565 visningar · startad av daPhil

Medlem sedan apr. 2001151 inlägg
Frågan#1

Någon som har ett bra sätt på att distribuera .tif filer utan att de öppnas i webbläsarfönstret? Zip är inte ett alternativ och jag vill inte att folk ska behöva högeklicka på länken och välja "spara som", alldeles för många journalister fattar inte sånt. :bire

Medlem sedan apr. 2001151 inlägg
#2

Om man inte kan göra något i koden kanske man kan göra något på servern? Hjälp!

Medlem sedan dec. 19998 577 inlägg
#3

Du använder dig utav BinaryRead och BinaryWrite för att skicka filen till användaren, sedan lägger du till en header som säger att du inte vet vad det är för något, då skall webbläsaren ge användaren ett nedladdningsfönster.

Dock har jag inte i huvudet vad värdena är nedan, men en liten sökning borde göra susen. ;)

Response.ContentType = "application/download"
Response.AddHeader "Content-Disposition", "unknown"

Läs mer om BinaryRead: http://www.devguru.com/Technologies/asp/quickref/request_binaryread.html
Läs mer om BinaryWrite: http://www.devguru.com/Technologies/asp/quickref/response_binarywrite.html

Mvh, Vide

Medlem sedan nov. 2000213 inlägg
#4

Så här kanske

Länka t.ex. bilden på din sida så här
<a href="download.asp?Filename=mintifbild.tif">din bild</a>

och sen själva downloadsidan som anropas när man klickar på bilden

<%
Dim Filename

Filename = Request.QueryString("Filename")

Response.ContentType = "application/octet-stream"
Response.AddHeader "Content-Disposition", "attachment;filename=" & Filename & ""

Const adTypeBinary = 1
Dim strFilePath

strFilePath = Server.MapPath("" & Filename & "")

Set objStream = Server.CreateObject("ADODB.Stream")
objStream.Open
objStream.Type = adTypeBinary
objStream.LoadFromFile strFilePath

Response.BinaryWrite objStream.Read

objStream.Close
Set objStream = Nothing
%>
Medlem sedan apr. 2001151 inlägg
#5

Ja, med den koden får jag upp ett downloadfönster och jag får hem en fil med rätt storlek, men den sparas som "download.html" och den går inte att öppna som en bild även efter omdöpning till .tif, har även testat med .jpg filer, utan framgång.... Någon ide? Det är ju ganska när nu..

Medlem sedan nov. 2000213 inlägg
#6

testa att ändra Response.ContentType = "application/octet-stream" till Response.ContentType = "image/tif" eller "image/JPEG" och se om det hjälper.

Medlem sedan apr. 2001151 inlägg
#7

Då är vi tillbaka på ruta 1, bilden öppnas i browsern.

Medlem sedan nov. 2000213 inlägg
#8

Har du provat Response.ContentType = "application/download"?

Om inte det fungerar så har jag nog slut på ideér, jag har dock provat alla varianter lokalt på min burk och de fungerar för mig så det kanske är någon annan inställning man måste göra.

Medlem sedan apr. 2001151 inlägg
#9

Nu får jag hem filen och den har rätt storlek och namn. Men det går inte att öppna den, Photohop fattar inte att det e en bildfil :(

Det enda som funkar är att sätta "image/tif" i headern, men då öppnas skiten o browsern, och det e inte bra när det e en 300 dpi, 45mb stor fil :(

Hilfe!

Medlem sedan nov. 2000213 inlägg
#10

Här är länk som kanske hjälper dig att få det att fungera, filerna som finns på sidan visar hur en gif laddas ner. Det borde fungera likadant med dina tif-filer.

http://www.aspalliance.com/chrisg/default.asp?article=49

Medlem sedan apr. 2001151 inlägg
#11

Det är samma script jag testat med redan.. På TIFFar funkar det inte alls, inte ens om jag specifierar "image/tif" som content type, Photoshop känner inte igen filen som en TIFF. På JPGar kommer man lite längre, de går att öppna i PS men inte i IE eller andra program.

Använder jag "application/octet-stream" kommer filen upp som tecken i browsern på Mac, typ 1000 sidor... Ingen downloadruta :( På PC/IE får man en downloadruta, men filen man får hem är oanvändbar...

Medlem sedan apr. 2001151 inlägg
#12

Här är min kod, jag tror inte jag gjort fel

If iType = "high" Then
		
		Filename = assRS("File")
		strFilePath = Server.Mappath("assets/" & Filename)
		
		Set f = FSO.GetFile(strFilePath)
		Set objStream = Server.CreateObject("ADODB.Stream")
		objStream.Open
		objStream.Type = 1
		objStream.LoadFromFile(strFilePath)
		intFilelength = f.size
	
		Response.AddHeader "Content-Disposition", "attachment; filename=" & Filename
		Response.AddHeader "Content-Length", intFilelength
		Response.Charset = "UTF-8"
		Response.ContentType = "image/tif"		
		
		Response.BinaryWrite objStream.Read
		Response.Flush
		
		objStream.Close
		Set objStream = Nothing
		Set FSO = NOTHING
		assRS.Close
		
	ElseIf iType = "low" Then
	
	
		Filename = FSO.GetBasename(Server.Mappath("assets/"&assRS("File"))) & "_low.jpg"
		
		strFilePath = Server.Mappath("assets/" & Filename)
		
		Set f = FSO.GetFile(strFilePath)
		Set objStream = Server.CreateObject("ADODB.Stream")
		objStream.Open
		objStream.Type = 1
		objStream.LoadFromFile(strFilePath)
		intFilelength = f.size
	
		Response.AddHeader "Content-Disposition", "attachment; filename=" & Filename
		Response.AddHeader "Content-Length", intFilelength
		Response.Charset = "UTF-8"
		Response.ContentType = "image/jpg"
		
		Response.BinaryWrite objStream.Read
		Response.Flush
		
		objStream.Close
		Set objStream = Nothing
		Set FSO = NOTHING
		assRS.Close
		
		
	End If
134 ms totalt · 3 externa anrop · v20260731065814-full.25f56b17
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
132 ms — hämta tråd, inlägg och bilagor (db)