Saltar al contenido

Cómo guardar el archivo cargado en JSF

Deseamos compartir contigo la mejor información que encontramos online. Nuestro deseo es que te sea de utilidad y si puedes compartir algo que nos pueda ayudar a perfeccionar nuestra información puedes hacerlo..

Solución:

los getInputStream() El método del archivo cargado representa el contenido del archivo.

InputStream input = uploadedFile.getInputStream();

Tienes que copiarlo en un archivo. Primero debe preparar una carpeta en el sistema de archivos del disco local donde se deben almacenar los archivos cargados. Por ejemplo, /path/to/uploads (en Windows, eso estaría en el mismo disco donde se ejecuta el servidor). Tenga en cuenta que debe absolutamente no almacene los archivos en la carpeta WAR expandida o incluso en la carpeta del proyecto IDE utilizando una ruta codificada o una ruta relativa a la web o getRealPath() por las razones mencionadas aquí La imagen cargada solo está disponible después de actualizar la página.

Luego, debe generar automáticamente el nombre del archivo. De lo contrario, cuando otra persona cargue un archivo con el mismo nombre coincidentemente más tarde, se sobrescribirá. podrías usar Files#createTempFile() instalación para obtener un nombre de archivo generado automáticamente.

Path folder = Paths.get("/path/to/uploads");
String filename = FilenameUtils.getBaseName(uploadedFile.getName()); 
String extension = FilenameUtils.getExtension(uploadedFile.getName());
Path file = Files.createTempFile(folder, filename + "-", "." + extension);

Si es necesario, la ruta de acceso a las cargas podría parametrizarse en función de una de las varias formas que se muestran en estas preguntas y respuestas: Forma recomendada de guardar los archivos cargados en una aplicación de servlet. los FilenameUtils es parte de Apache Commons IO que ya debería tener en su classpath ya que es una dependencia del componente de carga de archivos Tomahawk.

Finalmente, simplemente transmita el archivo cargado a ese archivo (suponiendo que Java 7):

try (InputStream input = uploadedFile.getInputStream()) 
    Files.copy(input, file, StandardCopyOption.REPLACE_EXISTING);


System.out.println("Uploaded file successfully saved in " + file);

Luego, para volver a descargarlo, lo más fácil sería registrarse /path/to/uploads como un nuevo contexto de aplicación web o un host virtual para que todos esos archivos estén disponibles mediante una URL. Véase también Cargar imágenes desde fuera de la carpeta webapps/webcontext/ deployment usando o

etiqueta.

Tienes la opción de defender nuestra función añadiendo un comentario y puntuándolo te damos las gracias.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *