subir servlet servidor guardar archivos archivo java jsp file

java - servlet - subir archivos a servidor jsp



¿Cómo enumerar los contenidos de un directorio de servidor usando JSP? (5)

debe conocer la ruta de jsp dentro de su aplicación web para poder pasar eso a getRealPath ()

File jsp = request.getRealPath(pathToJspInWebapp); //eg. /WEB-INF/jsp/my.jsp File directory = jsp.getParentFile(); File[] list = directory.listFiles();

Al escribir un archivo JSP, ¿cómo puedo obtener el directorio actual de este archivo en tiempo de ejecución?
(para poder iterar el directorio y enumerar sus contenidos)?

¿Se restringirían algunas operaciones de E / S de archivos debido a algunos problemas de seguridad?

Preferiría una solución sin acceder a algunas propiedades / variables del servidor específicas de la implementación.

EDITAR:
No preguntaría si era tan simple como el new File(".") , Porque esto solo daría el directorio de los ejecutables del servidor.


Un ejemplo correcto / de trabajo:

File jsp = new File(request.getRealPath(request.getServletPath())); File dir = jsp.getParentFile(); File[] list = dir.listFiles();


A partir de la versión 2.1 de Java Servlet API use:

File jsp = new File(request.getSession().getServletContext().getRealPath(request.getServletPath())); File dir = jsp.getParentFile(); File[] list = dir.listFiles();


<%@page import="java.io.*" %> <%@page import="java.util.*" %> <%! public void GetDirectory(String a_Path, Vector a_files, Vector a_folders) { File l_Directory = new File(a_Path); File[] l_files = l_Directory.listFiles(); for (int c = 0; c < l_files.length; c++) { if (l_files[c].isDirectory()) { a_folders.add(l_files[c].getName()); } else { a_files.add(l_files[c].getName()); } } } %> <% Vector l_Files = new Vector(), l_Folders = new Vector(); GetDirectory("C:/mydirectory/", l_Files, l_Folders); //folders should be left out... //for( int a = 0 ; a<l_Folders.size() ; a++ ) //out.println( "[<b>"+l_Folders.elementAt(a).toString() + "</b>]<br>") ; //generate files as XML out.println("<music>"); for (int a = 0; a < l_Files.size(); a++) { out.println("<file>" + l_Files.elementAt(a).toString() + "</file>"); } out.println("</music>"); %>

Reemplaza "C: / mydirectory /" con tu directorio


He usado este,

File jspFile = new File(request.getRealPath(request.getServletPath())); File dir = jspFile.getParentFile(); String requestURL = request.getRequestURL().toString(); String urlDir = requestURL.substring(0, requestURL.lastIndexOf(''/'')); File[] files = dir.listFiles(new FilenameFilter() { @Override public boolean accept(File dir, String name) { return name.endsWith(".ipa"); } });