Avatar billede svjensen Nybegynder
10. november 2003 - 10:12 Der er 17 kommentarer og
1 løsning

filesystemobject driller

Jeg anvender include file til at hente tekstindholdet på et website ind på siden.
Jeg ønsker at brugerne skal kunne redigere indholdet vha. en editor.

Men jeg har problemer med at få åbnet filen og vist indholdet i den iFrame jeg bruger til min editor.

Her er den del af mit script der skal hente filindholdet:

'Filen der skal redigeres indlæses
VPath = Request.ServerVariables("PATH_INFO")
varFilename = request.querystring("fil")
varFilename1 = Left(VPath, 4) & "include/" & varFilename
Const ForReading = 1, ForWriting = 2, ForAppending = 8
Set fso = Server.CreateObject("Scripting.FileSystemObject")
filtekst = fso.OpenTextFile(varFilename1, ForReading)

Det giver følgende fejl:
Server object error 'ASP 0177 : 800a004c'

Server.CreateObject Failed

/iv/myeditor.asp, line 34
Avatar billede erikjacobsen Ekspert
10. november 2003 - 10:17 #1
Og linie 34 er hvilken?
Avatar billede svjensen Nybegynder
10. november 2003 - 10:19 #2
Stand by ;-)
Avatar billede svjensen Nybegynder
10. november 2003 - 10:19 #3
linie 34: filtekst = .......
Avatar billede erikjacobsen Ekspert
10. november 2003 - 10:21 #4
Ja, din fso burde blive oprettet. Så kan det måske være et rettighedsproblem.
Hvad er varFilename1 ?
Avatar billede svjensen Nybegynder
10. november 2003 - 10:25 #5
Jeg har ændret scriptet til (jeg har bedt det om at skrive indholdet af variablene og jeg har tilføjet 'set' før filtekst):
'Filen der skal redigeres indlæses
VPath = Request.ServerVariables("PATH_INFO")
response.write VPath & "<br>"
varFilename = request.querystring("fil")
varFilename1 = Left(VPath, 4) & "include/" & varFilename
response.write varFilename1 & "<br>"
Const ForReading = 1, ForWriting = 2, ForAppending = 8
Set fso = Server.CreateObject("Scripting.FileSystemObject")
'Set fso = CreateObject("Scripting.FileSystemObject")
Set filtekst = fso.OpenTextFile(varFilename1, ForReading)

Det giver nu følgende:
Fejlmeddelelse:
/iv/myeditor.asp
/iv/include/text-admin.inc.txt

Server object error 'ASP 0177 : 800a004c'

Server.CreateObject Failed

/iv/myeditor.asp, line 34

The operation completed successfully.

Jeg har ikke noget problem med at include filen på den side hvor den skal vises.
Avatar billede svjensen Nybegynder
10. november 2003 - 10:27 #6
For en god ordens skyld kan jeg nævne at min editor ligger i biblioteket 'iv'
Avatar billede erikjacobsen Ekspert
10. november 2003 - 10:28 #7
Hovsa, skal du ikke
set filtekst = fso.OpenTextFile(varFilename1, ForReading)
Avatar billede erikjacobsen Ekspert
10. november 2003 - 10:30 #8
Kan du læse fra /iv ? Er det ikke et katalog under din wwwroot? Skal
du ikke bruge server.mappath?
Avatar billede svjensen Nybegynder
10. november 2003 - 10:35 #9
Din første kommentar: jo, som du kan se i min rettelse er det gjort.

Din anden kommentar: Jeg administrerer et udaf en række intranetsites på en server. Roden af mit intranetsite er 'iv', så det er ikke en specifik mappe. Mine include-filer er placeret i mappen 'include' som altså er første mappe niveau i mit 'lokale' site.
Hvor mener du at jeg skal bruge server.mappath?
Avatar billede svjensen Nybegynder
10. november 2003 - 10:38 #10
Der skulle være givet både læse og skrive rettigheder til mappen 'include'
Avatar billede erikjacobsen Ekspert
10. november 2003 - 10:46 #11
Jeg forstår ikke beskrivelsen af din mappestruktur. Men /iv betyder roden
af dit filsystem, ikke roden af dit site.
Avatar billede svjensen Nybegynder
10. november 2003 - 10:48 #12
OK. Det jeg mener er, at jeg ikke har adgang til niveauer højere end 'iv'.
Avatar billede svjensen Nybegynder
10. november 2003 - 10:49 #13
Kan jeg umiddelbart nemt teste om jeg kan læse? (Uden at skulle lave et filesustemobject, som jo som bekendt driller lidt.
Avatar billede erikjacobsen Ekspert
10. november 2003 - 10:50 #14
prøv

set filtekst = fso.OpenTextFile(server.mappath(varFilename1), ForReading)
Avatar billede svjensen Nybegynder
10. november 2003 - 11:15 #15
Det virker.
Tak for hjælpen.
Avatar billede erikjacobsen Ekspert
10. november 2003 - 11:25 #16
Så kan man filosofere lidt over hvorfor nogle mennesker så krampagtigt
holder fast i en teknologi, der er så brugerfjendsk som netop "gammeldags"
ASP. Den fejlmeddelelse du fik gav dig ingen indikation om hvad der var galt,
til trods for at systemet sagtens kunne have givet dig langt flere
oplysninger.

Al den tid menneskeheden har spildt på denne konto kunne have været brugt
til at udrydde kræft, sende folk til Mars, eller opfinde en dims, så
det var lettere at finde sine briller når de blev væk.

Jeg vil godt bidrage lidt til en envejsbillet til Mars for visse personer ;))
Avatar billede svjensen Nybegynder
10. november 2003 - 11:36 #17
Lad mig gætte; du er mere til php? ;-)

Jeg er bundet til ASP på det intranet vi har på arbejde. Privat bliver jeg mere og mere glad for php.

Mht. til dette spørgsmål så fandt jeg ud af, at jeg faktisk bare kunne bruge min tekstfil som source til min iFrame. Så slipper jeg for at åbne et filesystemobject og indlæse i det.

Nu skal jeg bare lige have scriptet til at skrive den nye tekst til filen i stedet for den gamle. Jeg vender tilbage, hvis det giver problemer.

Husk lige et svar.
Avatar billede erikjacobsen Ekspert
10. november 2003 - 12:02 #18
Nå ja, et svar.

Nej, jeg er mere en ikke-ASP mand. Alt andet er bedre.

Man er vel ikke mere bundet end man vil. Du kunne sikkert med fordel
flytte dele af systemet langsom til .net uden at chefen opdager det.
Den tid du - til sidst - kommer til at spare, kan du jo bruge til en
ferie på Hawaii. Ok. Det vil chefen måske opdage ;)
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