Se modifica los servicios de guardar de ServiceUzyTavAnexoSPR y ServiceUzyTavConvoca

parent 83fb7e0c
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="PersistenceUnitSettings">
<persistence-units>
<persistence-unit name="Default">
<packages>
<package value="ec.edu.espe.movilidad.MovilidadWS" />
</packages>
</persistence-unit>
</persistence-units>
</component>
</project>
\ No newline at end of file
package ec.edu.espe.movilidad.MovilidadWS.Service.FileStorage;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;
......@@ -11,7 +10,7 @@ import java.nio.file.*;
@Service
public class FileStorageService implements IFileStorageService {
private final Path rootFolder = Paths.get("uploads");
private final Path rootFolder = Paths.get("uploadsPDF");
private final Path rootFolderIMG = Paths.get("uploadsIMG");
......@@ -47,7 +46,7 @@ public class FileStorageService implements IFileStorageService {
}
}
@Override
public String moveFile(String sourceFilePath, String targetFileName, boolean overwrite) throws IOException {
Path sourcePath = Paths.get(sourceFilePath);
Path targetPath = rootFolder.resolve(targetFileName);
......@@ -67,13 +66,57 @@ public class FileStorageService implements IFileStorageService {
return targetPath.toString();
}
@Override
public String saveFileIMG(MultipartFile file, String fileName, boolean overwrite) {
try {
Path filePath = rootFolderIMG.resolve(fileName);
// Verificar si el archivo ya existe y si se permite la sobrescritura
if (Files.exists(filePath) && !overwrite) {
throw new FileAlreadyExistsException("File already exists: " + fileName);
}
// Eliminar el archivo anterior si existe
if (Files.exists(filePath)) {
Files.delete(filePath);
}
/////////////
// Guardar el archivo, reemplazando si es necesario
try (InputStream inputStream = file.getInputStream()) {
Files.copy(inputStream, filePath, StandardCopyOption.REPLACE_EXISTING);
}
return filePath.toString();
} catch (FileAlreadyExistsException e) {
// Manejar la excepción de archivo existente
// ... Realizar acciones adecuadas (por ejemplo, generar un nombre único)
throw new RuntimeException("File already exists: " + fileName, e);
} catch (IOException e) {
// Manejar la excepción de E/S
// ... Realizar acciones adecuadas (por ejemplo, registrar el error)
throw new RuntimeException("Failed to save file: " + fileName, e);
}
}
@Override
public String moveFileIMG(String sourceFilePath, String targetFileName, boolean overwrite) throws IOException {
Path sourcePath = Paths.get(sourceFilePath);
Path targetPath = rootFolderIMG.resolve(targetFileName);
if (Files.exists(targetPath) && !overwrite) {
throw new FileAlreadyExistsException("File already exists: " + targetFileName);
}
// Eliminar el archivo objetivo si existe y se permite la sobrescritura
if (Files.exists(targetPath)) {
Files.delete(targetPath);
}
// Mover el archivo de la ubicación de origen a la ubicación de destino
Files.move(sourcePath, targetPath, StandardCopyOption.REPLACE_EXISTING);
return targetPath.toString();
}
}
\ No newline at end of file
......@@ -11,4 +11,8 @@ public interface IFileStorageService {
String moveFile(String sourceFilePath, String targetFileName, boolean overwrite) throws IOException;
String saveFileIMG(MultipartFile file, String fileName, boolean overwrite);
String moveFileIMG(String sourceFilePath, String targetFileName, boolean overwrite) throws IOException;
}
......@@ -22,7 +22,7 @@ public class ServiceUzyTavAnexoSPR implements IServiceUzyTavAnexoSPR{
private final UzyTavAnexoSPRMapper mapper;
private final Path rootFolder= Paths.get("uploads");
private final Path rootFolder= Paths.get("uploadsIMG");
private final IFileStorageService fileStorageService;
......@@ -54,7 +54,7 @@ public class ServiceUzyTavAnexoSPR implements IServiceUzyTavAnexoSPR{
if (file != null && !file.isEmpty()) {
// Guardar el archivo en una ubicación temporal
String tempFileName = "temp_" + file.getOriginalFilename();
String tempFilePath = fileStorageService.saveFile(file, tempFileName, true);
String tempFilePath = fileStorageService.saveFileIMG(file, tempFileName, true);
// Guardar el registro en la base de datos para generar el ID
ModelUzyTavAnexoSPR uzyTavAnexoSPR = mapper.dtoToEntity(dtoUzyTavAnexoSPR);
......@@ -65,7 +65,7 @@ public class ServiceUzyTavAnexoSPR implements IServiceUzyTavAnexoSPR{
String fileName = uzytavanexospr_id + "_" + file.getOriginalFilename();
// Mueve el archivo de la ubicación temporal a la ubicación final
String fileUrl = fileStorageService.moveFile(tempFilePath, fileName, true);
String fileUrl = fileStorageService.moveFileIMG(tempFilePath, fileName, true);
uzyTavAnexoSPR.setUzytavanexospr_nombre(fileName);
uzyTavAnexoSPR.setUzytavanexospr_url(fileUrl);
......
......@@ -16,7 +16,7 @@ import java.util.*;
@Service
public class ServiceUzyTavConvoca implements IServiceUzyTavConvoca{
private final Path rootFolder= Paths.get("uploads");
private final Path rootFolder= Paths.get("uploadsPDF");
private final DaoUzyTavConvoca daoUzyTavConvoca;
private final UzyTavConvocaMapper modelMapper;
private final IFileStorageService fileStorageService;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment