Avatar billede Jman Praktikant
31. januar 2002 - 11:12 Der er 12 kommentarer og
1 løsning

Kigge i mappe på anden server og liste indhold som links

Hey!
Jeg har fået til opgave at oprette en asp-side på vores intranet, der kan vise indholdet af en mappe (på et andet volume) i listeform.
Det drejer sig om at siden skal vise en liste over alle de PDF-filer, der ligger i en mappe og så skal man kunne klikke på filnavnet for at åbne filen
Er der nogen der ligger inde med sådan en kode eller kan generere den?
Sætter gerne flere points til, men af hensyn til ekspertens regler, vil jeg i første omgang holde mig til kategori "svær"
Avatar billede rou Nybegynder
31. januar 2002 - 11:40 #1
Hvis du har almen netværks adgang til den anden server, vil det kunne klares ved at du får lavet en Mapping et sted i sti strukturen på den anden server, således at du kan benytte et drev navn.

Altså, "x:\pdf\" vil virke, men "\\otherserver\pdf\" vil ikke.

Derefter har du så et rettighedsproblem.
Når du roder rundt i filsystemet, fra ASP, så gør du det typisk i kontekst af IUSER_<maskinnavn> brugeren. Nemlig den bruger som IIS arbejder med.

Hvis denne bruger ikke har adgang uden for maskinen, hvilket er tvivlsomt af sikkerhedsmæssige årsager, så er du nødt til at tage helt andre forholdsregler.

Du skal så bruge en teknik som hedder Impersonation.

Læs evt. flg. http://www.iisfaq.com/Articles/280/

- Rou
Avatar billede rou Nybegynder
31. januar 2002 - 11:45 #2
Glemte lige at svare på hvordan du laver den liste...

Når du har sikret dig at ovenstående er iorden, så skal du igang med FileSystemObject.

Eks:
<%
Set oFileSys = Server.CreateObject("Scripting.FileSystemObject")
Set oFolder = oFileSys.GetFolder("<den absolutte sti som du dine dokumenter ligger i>")

For Each oFile In oFolder.Files
  WriteMyListEntry(oFile.Name)
Next

Set oFolder = Nothing
Set oFileSys = Nothing

%>

Læs evt. mere om FileSystemObject på MSDN.

- Rou
Avatar billede Jman Praktikant
31. januar 2002 - 11:51 #3
Disse to isues er intet problem.
Det er meningen at den "normale bruger" skal kunne kigge i directory, der altid er mappet som r:/
volumen er en offentlig mappe og alle har fuld adgang til denne...

Er det noget du kan hjælpe med ?
Avatar billede Jman Praktikant
31. januar 2002 - 11:53 #4
nå, der svarede jeg samtidig..
Jeg prøver lige det du har skrevet
Avatar billede Jman Praktikant
31. januar 2002 - 12:50 #5
OK - det fatter jeg altså minus af.
Kan du give mig hele koden ?
siden skal vise indhold af mappen "pdf_ok" på "//filessrv/r98"
Avatar billede rou Nybegynder
31. januar 2002 - 13:03 #6
<%
Set oFileSys = Server.CreateObject("Scripting.FileSystemObject")
Set oFolder = oFileSys.GetFolder("r:\")

For Each oFile In oFolder.Files
  Response.Write("filename: "& oFile.Name &"<br>")
Next

Set oFolder = Nothing
Set oFileSys = Nothing

%>

Hos mig giver dette flg. output, og R:\ er også et netværksdrev:
-------------------
filename: index.html
filename: test.phtml
filename: upload.phtml
filename: test.html
filename: dbasetest.phtml
filename: sybase_test.phtml
filename: upload.phtml~
filename: index.phtml
filename: test.doc
filename: Horsodan.zip
-------------------

- Rou
Avatar billede Jman Praktikant
31. januar 2002 - 13:09 #7
hm - jeg får fejl .. kan det skyldes at serveren hvor vores intranet er ikke har mounted r:/
Avatar billede Jman Praktikant
31. januar 2002 - 13:18 #8
nu har jeg mounted r: på vores intranet-maskine, men jeg får stadig fejl "Der er problemer med den side, du prøver at åbne, og den kan ikke vises."
Det eneste jeg har gjort er at copy/paste det ind, du har skrevet...*a' fatter ette en ski'*
Avatar billede Jman Praktikant
31. januar 2002 - 15:36 #9
hej rou!
Du fik mig i hvert fald på rette spor - tak for det....
Jeg har valgt at lave følgende løsning:
<%
    rootpath = "min-fulde-sti"
    level = 0
    Response.Write "<b>Følgende filer er blevet behandlet og fundet O.K. i vores system:<br>"
    Response.Write "Placering: " & rootpath & "</b><br><br>"
   
    sub getPath(strPath,level)
        Set fsObj = CreateObject("Scripting.FileSystemObject")
        Set MainFolder = fsObj.GetFolder(strPath)
        Set Files = MainFolder.Files
        Set Folders = MainFolder.subfolders

        For Each Folder in Folders
            for a = 1 to level
                Response.Write "&nbsp;"
            next
            response.write "<IMG SRC=""folder.gif"">&nbsp;<B>" & UCASE(folder.name) & "</b><br>"
            call getPath(strPath & "\" & lcase(folder.name),level+1)
        next

        For Each File in Files
            for a = 1 to level
                Response.Write "&nbsp;"
            next
            response.write "<IMG SRC=""spacer.gif""><a href='r:/"  & LCASE(file.name) & "'>" & LCASE(file.name) & "</a><br>"
        next
        set fsObj = Nothing
        set MainFolder = Nothing
    end sub
   
    call getPath(rootpath,level)
%>
----------
MEN kan du give mig et fif til hvorledes man kan gøre for at kunne slette en fil direkte fra intranettet (hvis den ikke er i orden) ??
På forhånd tak!
----------
Avatar billede rou Nybegynder
31. januar 2002 - 15:47 #10
Intranet? Så vil jeg tro at du har en relativ sti til din fil, og det kan godt blive et problem.
Men hvis du kan finde den absolutte sti, og hvis rettighederne er iorden, så kan du gøre med flg:

<%
fsObj.DeleteFile(<fuld sti til filen>)
%>
Jeg vil dog, for at undgå fejl hvis flere forsøger at slette samme fejl, bruge denne udvidelse:
<%
If(fsObj.FileExists(<fuld sti til filen>)) Then fsObj.DeleteFile(<fuld sti til filen>)
%>

Jeg vil iøvrigt stærkt anbefale at du henter Microsofts reference til VBScript, den findes som en Windows Help file.
Den indeholder også dokumentation af FileSystemObject.

- Rou
Avatar billede Jman Praktikant
31. januar 2002 - 15:55 #11
okay - har du link til den ?
Avatar billede Jman Praktikant
31. januar 2002 - 20:08 #12
rou - kender du koden til at sortere indholdet alfabetisk ?
Avatar billede Jman Praktikant
04. februar 2002 - 14:12 #13
rou?
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