Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Вывод списка файлов из заданной директории с ссылкой на файл / 7 сообщений из 7, страница 1 из 1
24.09.2012, 22:43:45
    #37970609
planetka
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вывод списка файлов из заданной директории с ссылкой на файл
Помогите, пожалуйста, решить вопрос. Нужно написать программу (точнее сервлет), который выводит список файлов из заданной директории. И нужно, чтобы были ссылки на эти файлы, чтобы их можно было бы открыть. Добавила папку и файлы в WebContent. Пробовала реализовать задачу с помощью File, но он выводит только имена файлов.

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
public class FileListServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;
      
    public FileListServlet() {
        super();
  }

	protected void doGet(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException {
		
	
		String param = getServletContext().getInitParameter("dirToShow");
		
		PrintWriter w = res.getWriter();
	    res.setContentType("text/html");
	    
	    File root = new File(param);
	  	   
	    File[] fileList = root.listFiles();
    
	    w.println("<H2><FONT COLOR=TEAL>" + "Total number of files in the choosen directory - " +
	        fileList.length + "</FONT></H2>");
	    w.println("<H3><FONT COLOR=PURPLE>" +
	        "Directory path - " + param + "</FONT></H3><HR>");
	    w.println("<TABLE BORDER=0 CELLSPACING=5>");
    	    
	   for(int i = 0; i < fileList.length; i++)
	        printName(fileList[i], w);	    
	    		
	    w.println("</TABLE><HR>");
	    
	  }

	 private void printName(File name, PrintWriter output)
	  {
	    String type = name.isDirectory()
	        ? " (Directory)" : " (File)";
	    output.println("<TR><TD>" + type + "</TD><TD><FONT COLOR=BLUE>"
	        + name.getName()  + "</FONT></TD></TR>");
	  }

	  public String getServletInfo()
	  {
	    return "This servlet shows a content of a directory" +
	           "mentioned in dirToShow parameter or property.";
	  }
}
...
Рейтинг: 0 / 0
24.09.2012, 22:47:41
    #37970614
J2SE
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вывод списка файлов из заданной директории с ссылкой на файл
planetka,

Код: java
1.
System.out.println("http://url/path_to_file/filename");
...
Рейтинг: 0 / 0
24.09.2012, 23:02:56
    #37970628
planetka
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вывод списка файлов из заданной директории с ссылкой на файл
J2SE,

не совсем поняла. Что значит " http://url/path_to_file/filename"? у меня директория задается через параметр, которые указывается в web.xml там может быть несколько файлов, список их имен выводится, а как ссылку на них сделать - не знаю
...
Рейтинг: 0 / 0
24.09.2012, 23:06:34
    #37970630
J2SE
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вывод списка файлов из заданной директории с ссылкой на файл
planetkaДобавила папку и файлы в WebContent.

статический путь до этой директории, дальше просто подставьте имена файлов.
...
Рейтинг: 0 / 0
25.09.2012, 09:24:43
    #37970815
planetka
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вывод списка файлов из заданной директории с ссылкой на файл
J2SE,

а через defaultServlet задачу решить эту можно? может кто-нибудь пробовал
...
Рейтинг: 0 / 0
25.09.2012, 13:10:32
    #37971239
Basil A. Sidorov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вывод списка файлов из заданной директории с ссылкой на файл
planetkaНужно написать программу (точнее сервлет), который выводит список файлов из заданной директории. И нужно, чтобы были ссылки на эти файлы, чтобы их можно было бы открыть.Вот задлянафига вам "программа, точнее сервлет", если достаточно п(р)очитать web.xml (Tomcat):
Код: xml
1.
2.
3.
4.
5.
  <!--   listings            Should directory listings be produced if there -->
  <!--                       is no welcome file in this directory?  [false] -->
  <!--                       WARNING: Listings for directories with many    -->
  <!--                       entries can be slow and may consume            -->
  <!--                       significant proportions of server resources.   -->

?
...
Рейтинг: 0 / 0
26.09.2012, 08:38:03
    #37972338
silvan
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вывод списка файлов из заданной директории с ссылкой на файл
planetka,
пара примеров

[SRC скачать]
if( filePath != null) {
DataInputStream in = null;
OutputStream out = null;
try {
in = new DataInputStream(new FileInputStream(f));
if( in != null ) {

out = new BufferedOutputStream( response.getOutputStream() );

String contentType = "text/html";
response.setContentType(contentType);
response.setHeader("Content-Disposition","attachment; fileName=\"" + fileName + "\"");


// Stream to the requester.
//
byte[] bbuf = new byte[4096];


while ((in != null) && ((length = in.read(bbuf)) != -1))
{
out.write(bbuf,0,length);
}

in.close();
out.flush();
out.close();
return;
}
} finally {
if( in != null ) try { in.close(); } catch( Exception e ) {System.out.println(e.getMessage());}
if( out != null ) try { out.close(); } catch( Exception e ) {System.out.println(e.getMessage());}
}

[/SRC]

[SRC открыть]
if( fileName != null) {
//Open the file for reading
String thisLine;

try {
sun.nio.cs.ext.IBM1025 d = new sun.nio.cs.ext.IBM1025();
d.canEncode();

BufferedReader br = new BufferedReader(new FileReader(logDir + "/" + fileName));
response.setContentType("text/html");
response.setCharacterEncoding("ibm-1025");
PrintWriter out = response.getWriter();
out.println("<html>");
out.println("<head>");
out.println("<title>");
out.println("[" + logDir + "/" + fileName + "]");
out.println("</title>");
out.println("</head>");
out.println("<body>");
out.println("Log folder: [" + logDir + "/" + fileName + "]");
out.println("</strong>");
out.println("<br />");
out.println("<h2>");
out.println("Log file: [" + fileName + "]");
out.println("</h2>");
while ((thisLine = br.readLine()) != null) { // while loop begins here
thisLine = new String(thisLine.getBytes("IBM-1025"),"ibm-1025");
thisLine = thisLine.replaceAll(">",">");
thisLine = thisLine.replaceAll("<","<");
out.println(thisLine + "<br>");
} // end while
out.println("</body>");
out.println("</html>");

} // end try
[/SRC]
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Вывод списка файлов из заданной директории с ссылкой на файл / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]