01. november 2005 - 13:30Der er
14 kommentarer og 1 løsning
FileSystemObject / ServerMappath problemer
Jeg har et mindre problem med Server.Mappath(). Hvis jeg skriver f.rks. Server.Mappath(/mappe1/fil.asp), så vil den antage at mappen ligge i f.eks C:\www-root\mappe1\fil.asp
Er der ikke en måde hvorpå man kan få den til KUN at tage mappe1/fil.asp ..????? Den skal kun tage FRA WWW Root mappen, og ind.
Jeg skal åbne en fil. Men hvis jeg gør det sådan her
Dim fso, f, filespec Set fso = CreateObject("Scripting.FileSystemObject") Set f = fso.OpenTextFile("/Mappe/fil.asp", 1, True)
Så virker det ikke. Den skriver bare "Stien blev ikke fundet"
Men hvis jeg gør sådan her
Dim fso, f, filespec Set fso = CreateObject("Scripting.FileSystemObject") strPath = Server.Mappath("Mappe/Fil.asp") Set f = fso.OpenTextFile(strPath, 1, True)
Så virker det. Men med Server.Mappath for man HELE stien med. Lige fra drevet og ind til filen. Jeg skal KUN have fra Root mappen og ind til filen. Alt det med C:\ osv... skal ikke med.
Det virker på min egen maskine, men den server det skal ligge på, lader ikke brugere rode rundt udenfor root mappen
server.mappath giver den sti den nu engang giver og det kan der ikke ændres på - men at den angiver c:/etc har intet med din fejl at gøre da det først er den endelig slut-mappes og -fils rettigheder der bestemmer om du har lov eller ej.
som jeg ser det er det derimod et spørgsmål om at forstå den rette filstruktur. Hvor ligger "Mappe" i forhold til din .asp-fil lokalt og hvor ligger den i forhold til .asp-filen på serveren?
Mappen ligger i Root mappen, og filen der skal åbne filen i mappen er included i forskellige filer på webstedet.
Det jeg gerne vil er at åbne den fil i mappen, så jeg kan læse fra den. Problemet er bare at den kode jeg bruger ikke virker på den server jeg lægger det op på
Ja men jeg har ikke adgang til den server den skal ligge på, så det kan jeg ikke. Og det jeg laver er jo også på en måde en directe sti. Jeg tager det bare fra Root og ind Set
f = fso.OpenTextFile("\Mappe\fil.asp", 1, True)
Problemet er bare at selvom jeg gør det, så tager den alligevel c:\www-root\ditwebsted med. Og det skal den ikke
hvorfor har du ikke adgang til det? har du prøvet? Som sagt er det kun din endelsesdestination der er afgørende for rettighederne og derfor burde du have adgang til at angive en sti på den måde jeg skrev... det vigtige er bare at angive den rigtige sti.
den SKAL tage c:\www-root\ditwebsted med - det er jo den måde hvorpå en sti-struktur ser ud. Du kan ikke undgå den gør det - og hvis du kunne så ville du aldrig kunne henvise til en fil.
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.