Toda tu fiesta aquí

import java.io.File; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletException; import javax.servlet.annotation.MultipartConfig; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.Part; @MultipartConfig(fileSizeThreshold = 1024 * 1024 * 2, // 2MB maxFileSize = 1024 * 1024 * 50, // 50MB maxRequestSize = 1024 * 1024 * 100) // 100MB public class UploadDownloadServlet extends HttpServlet { private static final String UPLOAD_DIR = «uploads»; @Override protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType(«text/html;charset=UTF-8»); PrintWriter out = response.getWriter(); String eventName = request.getParameter(«event_name»); String eventDate = request.getParameter(«event_date»); // Crear el nombre del directorio con el formato: NombreEvento_Fecha String directoryName = eventName + «_» + eventDate; String uploadPath = getServletContext().getRealPath(«») + File.separator + UPLOAD_DIR + File.separator + directoryName; // Crear la carpeta si no existe File uploadDir = new File(uploadPath); if (!uploadDir.exists()) { uploadDir.mkdirs(); // Crear el directorio con permisos } // Procesar los archivos subidos for (Part part : request.getParts()) { String fileName = extractFileName(part); if (fileName != null && !fileName.isEmpty()) { String filePath = uploadPath + File.separator + fileName; part.write(filePath); // Guardar el archivo } } // Mostrar formulario y lista de eventos out.println(««); out.println(««); out.println(«Subir y Ver Archivos«); out.println(««); // Enlace a tu archivo CSS out.println(««); out.println(««); out.println(«
«); out.println(«

Sube tus fotos y videos para el evento

«); // Formulario de subida de archivos out.println(«
«); out.println(««); out.println(««); out.println(««); out.println(««); out.println(««); out.println(««); out.println(««); out.println(«
«); // Listar carpetas de eventos out.println(«

Lista de eventos disponibles:

«); out.println(«
    «); String uploadBasePath = getServletContext().getRealPath(«») + File.separator + UPLOAD_DIR; File baseUploadDir = new File(uploadBasePath); if (baseUploadDir.exists() && baseUploadDir.isDirectory()) { File[] eventDirs = baseUploadDir.listFiles(File::isDirectory); if (eventDirs != null) { for (File eventDir : eventDirs) { String eventDirName = eventDir.getName(); out.println(«
  • » + eventDirName + «
  • «); } } } else { out.println(«

    No hay eventos disponibles.

    «); } out.println(«
«); // Si se ha seleccionado una carpeta, listar archivos String selectedFolder = request.getParameter(«folder»); if (selectedFolder != null && !selectedFolder.isEmpty()) { String eventPath = uploadBasePath + File.separator + selectedFolder; File eventFolder = new File(eventPath); if (eventFolder.exists() && eventFolder.isDirectory()) { out.println(«

Archivos del evento: » + selectedFolder + «

«); File[] filesInEvent = eventFolder.listFiles(); if (filesInEvent != null) { out.println(«
    «); for (File file : filesInEvent) { String fileName = file.getName(); out.println(«
  • » + fileName + «
  • «); } out.println(«
«); } else { out.println(«

No hay archivos para este evento.

«); } } else { out.println(«

El evento no existe.

«); } } out.println(«
«); out.println(««); out.println(««); } // Método para extraer el nombre del archivo private String extractFileName(Part part) { String contentDisp = part.getHeader(«content-disposition»); String[] tokens = contentDisp.split(«;»); for (String token : tokens) { if (token.trim().startsWith(«filename»)) { return token.substring(token.indexOf(«=») + 2, token.length() – 1); } } return «»; } }
Déjame explicarte de lo que te estoy hablando.
X

Al continuar, entiendes y das tu consentimiento para que tu dirección IP y la información de tu navegador puedan ser procesadas por los plugins de seguridad instalados en este sitio.