Avatar billede obhat Nybegynder
25. april 2006 - 14:54 Der er 15 kommentarer og
1 løsning

Beskyt mappeindhold

Findes der en måde at beskytte mappe indhold på ens server?
Feks. www.mitdomaine.dk/fotos/img01.jpg så man ikke bare kan åbne billedet img01.jpg ved at sætte adresen ind i browseren.
Avatar billede fennec Nybegynder
25. april 2006 - 15:18 #1
Nej.

Også alligevel, men der skal du have adgang til en mappe uden for webserver mappen, også skal du bruge et upload/download komponent (som har adgang til den mappe) til at hente billederne. Det er vist ikke alle komponenter, der kan lave dette (noget binærWrite).
Avatar billede obhat Nybegynder
25. april 2006 - 15:38 #2
Okay, ret kompliceret i virkeligheden?
Avatar billede fennec Nybegynder
25. april 2006 - 15:59 #3
Jeps, og det blive MEGET mere indviklet for de er billeder, som jeg går ud fra du vil vise i en browser (<img src="xx"..>). Og det er det som er svært, fordi bilederne så skal vises binært.

En almindelig "download dokument" beskyttelse har samme opbygning, men her skal dokumenterne jo ikke vises i browseren.

Er det din egen server eller en udbyders?? For er det en udbyders, vil jeg tro de ikke vil give dig de nødvendige tilladelser...
Avatar billede obhat Nybegynder
25. april 2006 - 17:20 #4
-Det er min egen.
Er der en mulighed for at hindre browseren i at gemme jpg filerne i internet temp mappen?
Avatar billede fennec Nybegynder
26. april 2006 - 08:22 #5
Nope.
Avatar billede eagleeye Praktikant
26. april 2006 - 11:29 #6
Køre du på en windows eller unix server?  Mit gæt er windows når det er i ASP kategorien.

Hvis man ligger filerne uden for wwwroot eller bare i folder som ingen kender eller kan se ud fra <img> tags så vil man normalt lave en .asp som udskriver billeder binært og du kan kalde et billede enten med id som du slår op i en datase eller bare navnet på filen:

<img src="image.asp?id=23">

eller

<img src="image.asp?navn=logo.gif">


Eks på image.asp:


<%
On Error Resume Next
Response.Buffer = True

filNavn = Request.QueryString("navn")
filStiNavn = "C:\sti\til\filerne\" & filNavn

Set st = Server.CreateObject("ADODB.Stream")

st.Type = 1 'Angiv fil-typen som binær
st.Open
st.LoadFromFile FilePath 'Åbner filen

Response.Clear

Response.ContentType = "image/gif"
Response.AddHeader "content-disposition", "inline;filename=x.gif"

Response.BinaryWrite st.Read() 'Skriver filen til browseren

st.Close
Set st = Nothing
Response.End
%>
Avatar billede obhat Nybegynder
26. april 2006 - 16:51 #7
Eagleeye >> kan du forklare dit forslag lidt nærmere?
Avatar billede eagleeye Praktikant
26. april 2006 - 17:11 #8
Du skriver det er din egen server så kan du inde i IIS sætte foldren så det kun er scripts (ASP) kode som kan tilgå filen. Det betyder man kan ikke skriver:

www.xxx.dk/img/logo.gif  og se eller downloade filen

Ulempen er så at man ikke kan skriver dette i HTML koden for at se filen:
<img src="/img/logo.gif"> 


Så kan man lave en fil som streamer billederne til browsere og den kode må gerne læse fra folderen og man angiver filen som src i img tagen. Man overføre så fil navnet til filen via source i img tagen:

<img src="image.asp?navn=logo.gif">


Koden i filen image.asp kan så finde filen ud fra navnet og den ved i hvilken folder filen er placeret. Den folder hvor filerne ligger kan enten være inde for eller uden for wwwroot foldren da ASP scriptet kan få fat i foldere uden for wwwroot:

filStiNavn = "C:\sti\til\filerne\" & filNavn




Der er en lille fejl i den viste kode: st.LoadFromFile FilePath 'Åbner filen
Skal være: st.LoadFromFile filStiNavn 'Åbner filen
Avatar billede obhat Nybegynder
26. april 2006 - 17:22 #9
Ja ASPimage kan godt gemme filen i f.eks filStiNavn = "C:\sti\til\filerne\" & filNavn

Men jeg aner ikke noget om det der binær og hvordan jeg via ASP & MySql skal hente eller streame filen til browseren.
Avatar billede eagleeye Praktikant
26. april 2006 - 23:14 #10
Gemmer du stien til filerne i databasen?
I så fald hvordan?

Du skal lave en fil med det kode jeg har vist, og så rette dine images tags så de kalder asp filen som udskriver billedet.
Avatar billede obhat Nybegynder
27. april 2006 - 10:42 #11
Ja. jeg gemmer billed id-15643124631330440534 random i en MySql database.
Avatar billede obhat Nybegynder
27. april 2006 - 20:06 #12
Men >> eagleeye, kan jeg i princippet bruge det samme system som jeg har nu, bare flytte mappen med billeder ud af wwwroot og på siden hvor jeg viser billeder, hente via et streming-script?

I så fald, hvordan vil et sådan script se ud?
Eller kræver det andre ting?
Avatar billede eagleeye Praktikant
27. april 2006 - 21:29 #13
Ja det kan du.


Eks hvis du har denne folder struktur:

c:\inet\images    'Billederne ligger her
c:\inet\wwwroot  'wwwroot folderen


Du opretter en fil hvor strem koden ligger i. Den kan hedde image.asp du kan ligge den .asp fil i eks wwwroot:

<%
On Error Resume Next
Response.Buffer = True

filNavn = Request.QueryString("navn")
filStiNavn = "c:\inet\images\" & filNavn

Set st = Server.CreateObject("ADODB.Stream")

st.Type = 1 'Angiv fil-typen som binær
st.Open
st.LoadFromFile filStiNavn 'Åbner filen

Response.Clear

Response.ContentType = "image/gif"
Response.AddHeader "content-disposition", "inline;filename=x.gif"

Response.BinaryWrite st.Read() 'Skriver filen til browseren

st.Close
Set st = Nothing
Response.End
%>




I den kode der er vist skal man overføre navnet på det billede som skal vises. Så hvis du har en image tag som ser sådan her ud i dag:
<img src="/billedefolder/etbillede.jpg">

Så skal den rettes til så den kalder image.asp filen i src, samt overføre fil navnet:

<img src="/image.asp?navn=etbillede.jpg">
Avatar billede fennec Nybegynder
28. april 2006 - 08:54 #14
Bare lige en kommentar til alt dette...
Hvis jeg husker ret, så hjælper streaming ikke på at brugeren kan højreklikke på billet og vælge "gem billed som...", og derved hente billed ned. Så det er lid så som så med sikkerheden :o)
Avatar billede obhat Nybegynder
28. april 2006 - 16:08 #15
Jamen der bruger jeg html-encrypt
Avatar billede obhat Nybegynder
18. august 2007 - 09:05 #16
...
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