Avatar billede maron Nybegynder
12. august 2007 - 12:30 Der er 10 kommentarer og
1 løsning

Load billede med script

Hej. Jeg loader billeder med et ASP script, som virker fint, indtil jeg sætter det ind på en side for at style med layout osv. Der vises bare tusindvis af mærkelige tegn.

Hvad gør jeg evt. galt?

Scriptet her virker fint, så længe det ikke sætte sammen med andet.
<%
Const adTypeBinary = 1

Response.Expires = 0
Response.Buffer = TRUE

file = 1

If InStr(Request.ServerVariables("HTTP_USER-AGENT"),"MSIE") > 0 Then
Response.AddHeader "Content-Disposition", "atachment; filename="& file
Else
Response.ContentType = "image/JPEG"
End if

Dim objStream
Set objStream = Server.CreateObject("ADODB.Stream")

objStream.Type = adTypeBinary
objStream.LoadFromFile server.mappath("...")

Response.BinaryWrite objStream.Read

objStream.Close
Set objStream = Nothing
Response.Flush
%>
Avatar billede thesurfer Nybegynder
12. august 2007 - 13:10 #1
Når du ændrer på content type, må der ikke være andet i outputtet, end selve billedet..

Dvs, du må ikke have HTML, CSS eller JavaScript med i filen..
Avatar billede thesurfer Nybegynder
12. august 2007 - 13:12 #2
Du skal nok hellere gøre sådan her..

Indholdet af index.asp:

<html>
...osv...

<img src="billede.asp">

...osv...
</html>

Din kode putter du så i filen "billede.asp"

HTML koden må ikke være i filen "billede.asp"..

Prøv det.
Avatar billede maron Nybegynder
12. august 2007 - 13:48 #3
yes. det virker:)
Avatar billede maron Nybegynder
12. august 2007 - 14:14 #4
Findes der måske et noget script, der forhindre filen eller adressen i at blive caches ?
Avatar billede thesurfer Nybegynder
12. august 2007 - 15:41 #5
Det ved jeg ikke..

Det er sådan jeg plejer at lave det..

Metoden kan også anbefales, hvis man f.eks vil lave statistik over hvor mange gange en fil er downloadet..

eksempel:
download.asp?fil=test.exe

Så vil download.asp tage fat i en (for brugeren) ukendt mappe, så ved kommende bliver nødt til, at gå igennem download.asp..
Og en anden god grund til download.asp, er at man forhindre det man kalder "leeching", hvor folk bare linker til dine filer, og du så kommer til at betale for deres traffik..
Et anti-leeching script, kunne checke om en bestemt session var sat.. hvis ikke, får man ikke lov til at downloade..

- Svar.
Avatar billede maron Nybegynder
12. august 2007 - 16:03 #6
Jamen er det ikke bare at skrive på download.asp

if session("brugernavn") <> "" then
else
response.redirect("404.asp")
end if
Avatar billede thesurfer Nybegynder
12. august 2007 - 16:42 #7
Hvis man skal være logget ind, og login-systemet sætter en session, jo..

Hvis man kan downloade uden at være logget ind, skal du på samme/foregående side sætte en session.. eller ligende..

Hvordan er dit system nu?
Avatar billede w13 Novice
12. august 2007 - 16:50 #8
Eller

if session("brugernavn")="" then response.redirect("404.asp")

:)
Avatar billede maron Nybegynder
12. august 2007 - 16:50 #9
Jeg bruger et loginscript og sætter dette i toppen af download.asp

if session("brugernavn") <> "" then
else
response.redirect("404.asp")
end if
Avatar billede thesurfer Nybegynder
12. august 2007 - 16:51 #10
Hvis man skal være logget ind, for at kunne downloade, er det nok at checke session..

Lidt mere logisk at gøre det, som w13 skriver:

if session("brugernavn")="" then response.redirect("404.asp")
Avatar billede maron Nybegynder
12. august 2007 - 16:53 #11
Ja any way, begge dele virker.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester