webForumDet fria alternativet

Spara som med ASP

ASP

13 svar · 430 visningar · startad av joakimweb

Medlem sedan feb. 2002141 inlägg
Frågan#1

Hejsan alla!

Jag är ute efter en "spara som" funktion till mitt reklamfilm-arkiv på min hemsida.

Hittade denna koden här på wF:

<%
Response.ContentType = "application/x-whatever"

Const adTypeBinary = 1
Dim strFilePath

strFilePath = Server.MapPath("ica.asf") 

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

Response.BinaryWrite objStream.Read

objStream.Close
Set objStream = Nothing
%>

Men den sparar sig själv.
Nån som vet hur man ska göra?

Filtyperna som ska kunna laddas ner är .asf och.wmv

Tack på förhand!

Medlem sedan feb. 200112 078 inlägg
#2
"application/x-whatever"

:q

Medlem sedan feb. 2002141 inlägg
#3

Jo, nåt där kan jag tänka mig att man måste ändra. Men vet ej vad det ska vara istället....

Medlem sedan mars 20015 287 inlägg
#4

Kanske:

Response.ContentType = "application/x-msdownload"

Medlem sedan feb. 2002141 inlägg
#5

funkar inte det heller

Medlem sedan dec. 20002 526 inlägg
#6

Response.ContentType = "application/x-asf"

eller jag vet inte

Medlem sedan juni 20004 308 inlägg
#7

OveRRidE skrev:

"application/x-whatever"

:q

Alltså en mime-typ som är okänd för webbläsaren. Brukar resultera i att den frågar om filen skall sparas på disk.

Kör man IIS4 får man dock uppgradera Windows Script för att få tillgång till ADODB.Stream.

Windows Script 5.6

Medlem sedan feb. 2002141 inlägg
#8

Jo, men det där ASP-scriptet sparar filen binärt. Tror att det inte går med .asf och .wmv filer.

Nån som vet något annat ASP eller PHP-script?

Medlem sedan juni 20004 308 inlägg
#9

joakimweb skrev:

Jo, men det där ASP-scriptet sparar filen binärt. Tror att det inte går med .asf och .wmv filer.

Alla filer sparas binärt. Det är så datorer jobbar. Sedan kan man säga att man överför filer som ex. text, men det man menar då är att vissa systemberoende tecken/teckensekvenser (ex. radbrytning) kan bytas ut mot det som passar målsystemet. Filen sparas dock fortfarande binärt (som 1'or och 0'or, bits, på hårddisken).

Filformaten asf och wmv är exempel på filer som skall överföras utan någon form av förändring och så därför borde scriptet fungera utmärkt. Men du får se till så att du inte oavsiktligt skickar med något annat data, ex en halv html-sida innan själva datat kommer. Berätta gärna vad du får för fel så kan säkert någon hjälpa till.

Medlem sedan feb. 2002141 inlägg
#10

Jag har enbart den koden på en sida, sparad som .asp såklart.
Själva felet är att den sparar asf-filen som asp-filens namn och filtillägg.

Alltså om jag skall spara ica.asf så sparas den som test.asp eftersom scriptet heter det. Men själva datan/innehållet ser ut att vara asf-filens. I alla fall ingen ASP-kod.

Någon som kan?

Medlem sedan feb. 200112 078 inlägg
#11

Jag är ingen höjdare på det där, men borde inte .open vara efter populeringen av properties?

Set objStream = Server.CreateObject("ADODB.Stream")
objStream.Type = adTypeBinary
objStream.LoadFromFile strFilePath
objStream.Open
Medlem sedan feb. 2002141 inlägg
#12

Nej, Open ska vara först. Open anger att objektet skall öppnas. När objektet väl är öppet kan man ställa in andra inställningar.

Medlem sedan juni 20004 308 inlägg
#13

joakimweb skrev:

Själva felet är att den sparar asf-filen som asp-filens namn och filtillägg.

Alltså om jag skall spara ica.asf så sparas den som test.asp eftersom scriptet heter det.

Detta fanns med i orginal-tråden. Du lägger alltså till en http-header där du anger filnamnet, på raden efter;

Response.ContentType = "application/x-whatever"

Lägger du till;

Response.AddHeader "Content-Disposition", "attachment; filename=ica.asf"

Medlem sedan feb. 2002141 inlägg
#14

Tusen tack!
Du är en ängel Jojoxx!

Nu fungerar det!

259 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
127 ms — deklarationer (db)
0 ms — hämta statistik (cache)
130 ms — hämta tråd, inlägg och bilagor (db)
122 ms — ändringar (db)