Andresp08 / springBoot-file-upload

This Spring Boot application is designed to facilitate generic CSV file uploads with a focus on flexibility and ease of use. The primary goal of this project is to allow users to upload CSV files.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

SpringBoot File Upload

Swagger Documentation

file upload success

Upload files with springboot using opencsv

If you want to use this generic file upload without the anotation @CsvBindByName, you can replace the GenericCsvParseToEntity methods for:

public Set<Entity> parseCsvToEntity(MultipartFile file, Class<Entity> entityClass) throws IOException,  
CsvValidationException {  
    Set<Entity> entities = new HashSet<>();  
  
	    try (CSVReader reader = new CSVReader(new InputStreamReader(file.getInputStream()))) {  
		    String[] header = reader.readNext();  
		    String[] line;  
		      
		    while ((line = reader.readNext()) != null) {  
		    Entity entity = buildEntity(header, line, entityClass);  
		    entities.add(entity);  
	    }  
    }    
    return entities;  
}  
  
private Entity buildEntity(String[] header, String[] line, Class<Entity> entityClass) {  
    try {  
	    Entity entity = entityClass.getDeclaredConstructor().newInstance();  
	      
	    for (int i = 0; i < header.length; i++) {  
	    String columnName = header[i];  
	    String cellValue = line[i];  
	      
	    Field field = entityClass.getDeclaredField(columnName);  
	    field.setAccessible(true);  
	      
	    if (field.getType() == String.class) {  
		    field.set(entity, cellValue);  
	    } else if (field.getType() == int.class) {  
		    field.set(entity, Integer.parseInt(cellValue));  
	    }    
	    field.setAccessible(false);  
    }  
    return entity;  
    } catch (Exception e) {  
	    throw new RuntimeException("Error al construir entidad", e);  
    }  
 }

About

This Spring Boot application is designed to facilitate generic CSV file uploads with a focus on flexibility and ease of use. The primary goal of this project is to allow users to upload CSV files.


Languages

Language:Java 100.0%