Carga de múltiples archivos de Springboot
getOriginalFilename, obtiene el nombre del archivo cargado
getBytes, convierte el contenido del archivo cargado en una matriz de bytes;
getInputStream, obtiene InputStream;
isEmpty, indica que el archivo cargado está vacío o que no hay ningún archivo cargado
getSize, indica el; tamaño del archivo cargado.
transferir a (destino del archivo), guarde el archivo en el sistema de archivos de destino.
Para cargar varios archivos al mismo tiempo, utilice la clase de matriz MultipartFile para aceptar múltiples cargas de archivos:
//MultiFileUpload @RequestMapping(value = "/batch/ upload", método = RequestMethod.POST)
@ResponseBody public String handleFileUpload(solicitud HttpServletRequest){
Lista< .MultipartFile> archivos = ((MultipartHttpServletRequest) solicitud)
.getFiles("archivo");
Archivo MultipartFile = nulo;
Flujo BufferedOutputStream = nulo;
for (int i = 0; i < archivos.tamaño(); ++i) {
archivo = archivos.get(i);
if (!file.isEmpty()) {
prueba {
byte[] bytes = file.getBytes();
stream = new BufferedOutputStream(new FileOutputStream (
p>nuevo archivo(file. getOriginalFilename())));
stream.write(bytes);
stream.close();
} catch (Excepción e) {
stream = null;
return "No pudo cargar " + i + " => " + e.getMessage( );
}
} else {
return "No pudo cargar " + i
+ " porque el archivo estaba vacío ."; p>
}
}
}
Devuelve "Carga exitosa";
} p>
Puede limitar los archivos cargados por SpringBoot configurando la siguiente configuración predeterminada en application.properties:
spring.servlet.multipart.enabled=true
spring.servlet .multipart.file- size-threshold=0
spring.servlet.multipart.max-file-size=1MB
spring.servlet.multipart.max-request-size=10MB
spring.servlet.multipart.resolve-lazily=false
enable El valor predeterminado es verdadero, lo que permite cargar archivos adjuntos.
El umbral de tamaño del archivo limita la longitud del archivo cargado. Cuando el archivo excede una cierta longitud, se convertirá en un archivo temporal.
Ayuda a evitar que los archivos cargados ocupen demasiada memoria, se mide en MB o KB, el valor predeterminado es 0 y el umbral es ilimitado.
ubicación se refiere al directorio donde se almacenan los archivos temporales. Si no se configura, el servidor web proporciona un directorio temporal.
El atributo max-file-size especifica la longitud máxima de un solo archivo, el valor predeterminado es 1 MB; el atributo max-request-size describe la longitud máxima de una sola carga de solicitud HTTP, el valor predeterminado es 10 MB; .
resolver-lazily significa resolver el archivo en un archivo al acceder al archivo y los parámetros.