Avatar billede cow-tilter Nybegynder
21. oktober 2003 - 17:57 Der er 14 kommentarer og
1 løsning

Vis filer - 2

Jeg har som man kan se i http://www.eksperten.dk/spm/416560
lavet en side der viser indholdet i en mappe på serveren.

Jeg har nu lavet mappenavnene om til links. Når jeg så trykker et af disse links, der fører til den nye mappe, kommer jeg bare ud i den oversigt som serveren viser, når man spørger efter indholdet af en mappe.

Sprøgsmålet er så om man kan lave et filter der kan kende forskel på mapper og filer, således den oprindelige side kører i en sløjfe, og i det øjeblik man trykker på et link, vil den hente filen. Er det derimod en mappe, kører sløfen engang mere, og den nye mappes indhold vises.
Avatar billede arne_v Ekspert
21. oktober 2003 - 18:26 #1
Lad os sige at din JSP side hedder dir.jsp så genererer du
links for directories til dir.jsp?dir=xxxx og lader dir.jsp
teste på request.getParaemeter("dir") og liste det directory.
Almindelige filer genererer du bare almindelige links til (eller
til en copy servlet).
Avatar billede cow-tilter Nybegynder
21. oktober 2003 - 19:28 #2
Det har jeg også gjort, jeg har lavet et udkast til den, hvor jeg har lavet to sider, men det holder ligesom ikke i længden, hvis den skal være fleksibel.
Side et:

<%@ page import='java.io.*'%>

<br>
<div align="center"><h1>Indholdet af mappen: <i>Sager</i></h1></div>
<%
      File dir = new File("f:\\sager\\sjov");
      String[] dirlist = dir.list();
      for (int i = 0; i < dirlist.length; i++) {
%>

<li><a href="index.jsp?site=uploadSager/sjovb2&sti=<%=dirlist[i]%>"><%=dirlist[i]%></a></li>

<%
      }
%>

Linket fører så til side to:

<%@ page import='java.io.*'%>


<% String fil=request.getParameter("sti"); %>

<br>
<div align="center"><h1>Indholdet af mappen: <i><%=fil%></i></h1></div>

<%
      File dir = new File("f:\\Sager\\Sjov\\"+fil+"");
      String[] dirlist = dir.list();
      for (int i = 0; i < dirlist.length; i++) {
%>
<li><a href="sjov/<%=fil%>/<%=dirlist[i]%>"><%=dirlist[i]%></a></li>
<%
    }
%>

Det er så meningen at det bare skal være en side der kan løse problemet.
Avatar billede arne_v Ekspert
21. oktober 2003 - 19:44 #3
Du kan vel godt bruge samme side ?

Og du skal vel teste på om det er et directory eller ej ?
Avatar billede cow-tilter Nybegynder
21. oktober 2003 - 19:52 #4
Ja, men for at flytte et led dybere, skal
File dir = new File("f:\\Sager\\Sjov\\"+fil+"");
jo følge med. Jeg kan jo godt risikere at en mappe ligger i f:\\sager\\sjov\\mappe1\\mappe2\\"+fil+"
Der skal den så bare tilføje en string, men hvordan får jeg den til at udvide stien?
Avatar billede arne_v Ekspert
21. oktober 2003 - 19:54 #5
Jeg laver et eksempel.
Avatar billede cow-tilter Nybegynder
21. oktober 2003 - 19:57 #6
ok
Avatar billede arne_v Ekspert
21. oktober 2003 - 20:00 #7
rdir.jsp:

<%@page import="java.io.*"%>
<%
      String dirstr = request.getParameter("dir");
      if(dirstr == null) {
          dirstr = "C:\\";
      }
      File dir = new File(dirstr);
      String[] dirlist = dir.list();
      for (int i = 0; i < dirlist.length; i++) {
        if((new File(dirstr + "\\" + dirlist[i])).isDirectory()) {
%>
<A HREF="rdir.jsp?dir=<%=dirstr+"\\"+dirlist[i]%>"><%=dirlist[i]%></A><BR>
<%
        } else {
%>
<%=dirlist[i]%><BR>
<%
        }
      }
%>
Avatar billede arne_v Ekspert
21. oktober 2003 - 20:01 #8
rdir.jsp lister C:\ (ret selv til)

filer bliver bare vist d.v.s. ingen links (ret selv til)

directories bliver til links med rdir.jsp?dir=...
Avatar billede cow-tilter Nybegynder
21. oktober 2003 - 20:22 #9
Jep, den virker. Den med at smide hele stien ind som string havde jeg ikke lige tænkt på. Hvordan så med filerne? De bliver ikke til links. Det er vel det sidste <%=dirlist[i]%> der skriver den?
Avatar billede cow-tilter Nybegynder
21. oktober 2003 - 20:29 #10
Har den.. Jeg lavede den om til et link, men det virkede ikke i første omgang ved ikke lige hvorfor...? Nå men nu virker filerne også.
Avatar billede cow-tilter Nybegynder
21. oktober 2003 - 20:33 #11
hmm, det skriver du jo også den så jeg ikke...
Avatar billede cow-tilter Nybegynder
21. oktober 2003 - 20:34 #12
Smider du lige et svar?
Avatar billede arne_v Ekspert
21. oktober 2003 - 20:37 #13
svar
Avatar billede arne_v Ekspert
21. oktober 2003 - 20:38 #14
Husk lige at hvis det er internet så er der nogen security overvejelser
der skal gøres !
Avatar billede cow-tilter Nybegynder
21. oktober 2003 - 20:46 #15
Ja.
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