[ASP] MapPath, één niveau hoger dan root website

Pagina: 1
Acties:

  • Joozt
  • Registratie: Augustus 2001
  • Laatst online: 09-05 08:43
Ik wil dus eigenlijk het volgende:

ASP:
1
Server.MapPath("/../database")


Waarom:
Ik heb in de root van de website een database script wat ik include. Dat doe ik nu d.m.v.
ASP:
1
Server.Mappath("../database/bestand.mdb")

Ik heb echter ook een aantal bestanden in een subdirectory van de root waar ik dat zelfde database script wil includen.

Waarom werkt dit niet:
Met
ASP:
1
Server.Mappath("../database/bestand.mdb")

ga je 1 niveau hoger dan de plaats waarvan het script wordt aangeroepen. Hij probeert nu dus
c:\inetpub\wwwroot\database\bestand.mdb te openen, terwijl ik c:\inetpub\database\bestand.mdb wil hebben.

Geen gebruik maken van Server.Mappath, maar de lokatie van de database hard ingeven is geen optie omdat de website op verschillende servers draait.

Een apart scriptbestand voor de subdirectory is ook geen optie omdat de bestanden in de subdirectory automatisch gegenereerd worden.

Heeft iemand een idee?

  • Jaspertje
  • Registratie: September 2001
  • Laatst online: 08-05 09:43

Jaspertje

Max & Milo.. lief

De server.mappath begint default in de map waar je zit (dat doet het ook gewoon) als je /root/ doet zal het object gaan zoeken naar een /root vanaf je basedirectory.. Daarom werkt server.mappath("../") ook niet

je zou er ook voor kunnen kiezen om de map aan te geven in een XML of TXT bestand of zelfs in de registry van de server. Dan zal je die kunnen uitlezen.

[ Voor 213% gewijzigd door Jaspertje op 05-03-2005 17:31 ]


  • OZ-Gump
  • Registratie: November 2002
  • Laatst online: 14-05-2024

OZ-Gump

terug van weggeweest

Binnen ASP.Net heb je hiervoor een mogelijkheid door "../foo/bar/" achter mappath te plakken. Je zou dan zoiets krijgen:
C#:
1
Server.MapPath("") + "../database/bestand.mdb";
Je zou eens kunnen kijken of dat binnen ASP voor het gewenste resultaat zorgt ...

My personal website


  • xtra
  • Registratie: November 2001
  • Laatst online: 19-11-2025
Als je met Server.Mappath de root hebt bepaald zou je met het FileSystemObject het parent path kunnen bepalen. Een paar extra stappen maar wel fail save en je hoeft de waarde nergens op te slaan.

  • CrashOne
  • Registratie: Juli 2000
  • Niet online

CrashOne

oOoOoOoOoOoOoOoOoOo

Ik doe dit altijd op de volgende manier: maak een include bestand in de betreffende dir die je onder je standaard includes bestanden include.

Zet in dit bestand het volgende:

fileLocation = "../" & fileLocation

En dat dan voor ieder bestand dat je wil gaan gebruiken en alles werkt zoals je het wilt.

[ Voor 3% gewijzigd door CrashOne op 05-03-2005 23:23 . Reden: typo ]

Huur mij in als freelance SEO consultant!


  • Jaspertje
  • Registratie: September 2001
  • Laatst online: 08-05 09:43

Jaspertje

Max & Milo.. lief

Zou je niet de database gewoon op een plek binnen je webomgeving willen hangen en dan via IIS instellingen ervoor zorgen dat ie niet gedownload kan worden. Dan ben je ook van het probleem af..

  • CrashOne
  • Registratie: Juli 2000
  • Niet online

CrashOne

oOoOoOoOoOoOoOoOoOo

Huh? Das wel een heel vreemde oplossing en ook totaal onzinnig want je moet je db blijven benaderen, eventueel ook vanuit een andere dir.
En aangezien je dit neit via http doet zie ik het nu er niet van in om hem in je wwwroot te plaatsen.

Huur mij in als freelance SEO consultant!


  • faabman
  • Registratie: Januari 2001
  • Laatst online: 08-08-2024
Server.MapPathThe MapPath method maps the specified relative or virtual path to the corresponding physical directory on the server.
Je kunt gewoon buiten de root van je webdirectory aan de gang, waar je wel even op moet letten is het toelaten van Parent Paths in je IIS instellingen...

Op zoek naar een baan als Coldfusion webdeveloper? Mail me!


  • sopsop
  • Registratie: Januari 2002
  • Laatst online: 08:55

sopsop

[v] [;,,;] [v]

Ook niet een echt nette oplossing, maar je kunt ook gewoon de laatste map van mappath string afkappen en er een nieuwe map aanplakken.

  • OZ-Gump
  • Registratie: November 2002
  • Laatst online: 14-05-2024

OZ-Gump

terug van weggeweest

boppert schreef op maandag 07 maart 2005 @ 10:13:
Ook niet een echt nette oplossing, maar je kunt ook gewoon de laatste map van mappath string afkappen en er een nieuwe map aanplakken.
Dat zeg ik ;) een mogelijkheid door "../foo/bar/" achter mappath te plakken. Ik vraag me af of de TS er al uit is, want we horen niks meer van hem...

My personal website


  • Joozt
  • Registratie: Augustus 2001
  • Laatst online: 09-05 08:43
OZ-Gump schreef op zaterdag 05 maart 2005 @ 19:23:
...
Je zou dan zoiets krijgen:
C#:
1
Server.MapPath("") + "../database/bestand.mdb";

...
Jah, logisch... Dit zou wel moeten werken ja. Jammer dat ik er zelf niet op ben gekomen.


Ik ga het op de volgende manier gebruiken:
ASP:
1
Server.MapPath("/") & "../database/bestand.mdb";
Pagina: 1