Just nu i M3-nätverket
Gå till innehåll

MapPath


Kalinka

Rekommendera Poster

Hej!

 

Jag använder MapPath för att öppna en fil och inkludera den i en webbsida. Så här ser koden ut.

 

path = [b]Server[/b].MapPath([GRÅ]"../../data/files/"[/GRÅ] & filenamn & [GRÅ]".txt"[/GRÅ])

 

Den öppnar alltså en fil som INTE ligger på webbserver utan under servern.

 

Problemet är bara att denna kod ligger i en include fil som inkluderas lite här och var på min sajt och därför blir det fel eftersom sökvägen är relativ. Ibland skulle sökvägen behöva vara ../data/files och inbland kanske tillochmed ../../../data/files

 

Finns det inte någon kod som möjliggör detta?

 

Tack*1000!

 

Länk till kommentar
Dela på andra webbplatser

Lite råd

 

1) Använd inte ../ med Server.MapPath, p g a att man bör ha stängt av s k "Parent paths" i IIS / Web servern (säkerhetsrisk). Detta händer automatiskt när man installerar Urlscan på servern. (Det fungerar i och för sig med Server.MapPath("../"), men som god sed är det bra att undvika det, speciellt om man inkluderar från olika undermappar).

 

2) Använd ett virtual dir när du mappar, e g Server.MapPath("/files"). Ange i IIS att virtual dir:et pekar på var du nu har files på hårddisken.

 

3) Om du inte vill ha en mappning i IIS där /files är åtkomlig på din site skall du inte använda Server.MapPath. Ange i stället den direkta sökvägen, e g c:\inetpub\files eller motsvarande.

 

 

Observera att ovanstående även gäller vid s k includes:

"#include file" med "../" i sökvägen fungerar t ex inte om parent paths är avstängt. Använd endast "#include file" när du inkluderar något i samma mapp. Använd i stället #include virtual när du vill inkludera något utanför asp-sidans mapp, e g

<!-- #include file=[GRÅ]"functions.asp"[/GRÅ] -->

alternativt

<!-- #include virtual=[GRÅ]"/includes/my_functions.asp"[/GRÅ] -->

 

 

Mvh

 

Jimmy

 

[inlägget ändrat 2004-08-15 16:57:24 av dotgif]

Länk till kommentar
Dela på andra webbplatser

Arkiverat

Det här ämnet är nu arkiverat och är stängt för ytterligare svar.

×
×
  • Skapa nytt...