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; package ec.edu.espe.movilidad.MovilidadWS.Service.FileStorage;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
...@@ -11,7 +10,7 @@ import java.nio.file.*; ...@@ -11,7 +10,7 @@ import java.nio.file.*;
@Service @Service
public class FileStorageService implements IFileStorageService { 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"); private final Path rootFolderIMG = Paths.get("uploadsIMG");
...@@ -47,7 +46,7 @@ public class FileStorageService implements IFileStorageService { ...@@ -47,7 +46,7 @@ public class FileStorageService implements IFileStorageService {
} }
} }
@Override
public String moveFile(String sourceFilePath, String targetFileName, boolean overwrite) throws IOException { public String moveFile(String sourceFilePath, String targetFileName, boolean overwrite) throws IOException {
Path sourcePath = Paths.get(sourceFilePath); Path sourcePath = Paths.get(sourceFilePath);
Path targetPath = rootFolder.resolve(targetFileName); Path targetPath = rootFolder.resolve(targetFileName);
...@@ -67,13 +66,57 @@ public class FileStorageService implements IFileStorageService { ...@@ -67,13 +66,57 @@ public class FileStorageService implements IFileStorageService {
return targetPath.toString(); 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 { ...@@ -11,4 +11,8 @@ public interface IFileStorageService {
String moveFile(String sourceFilePath, String targetFileName, boolean overwrite) throws IOException; 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{ ...@@ -22,7 +22,7 @@ public class ServiceUzyTavAnexoSPR implements IServiceUzyTavAnexoSPR{
private final UzyTavAnexoSPRMapper mapper; private final UzyTavAnexoSPRMapper mapper;
private final Path rootFolder= Paths.get("uploads"); private final Path rootFolder= Paths.get("uploadsIMG");
private final IFileStorageService fileStorageService; private final IFileStorageService fileStorageService;
...@@ -54,7 +54,7 @@ public class ServiceUzyTavAnexoSPR implements IServiceUzyTavAnexoSPR{ ...@@ -54,7 +54,7 @@ public class ServiceUzyTavAnexoSPR implements IServiceUzyTavAnexoSPR{
if (file != null && !file.isEmpty()) { if (file != null && !file.isEmpty()) {
// Guardar el archivo en una ubicación temporal // Guardar el archivo en una ubicación temporal
String tempFileName = "temp_" + file.getOriginalFilename(); 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 // Guardar el registro en la base de datos para generar el ID
ModelUzyTavAnexoSPR uzyTavAnexoSPR = mapper.dtoToEntity(dtoUzyTavAnexoSPR); ModelUzyTavAnexoSPR uzyTavAnexoSPR = mapper.dtoToEntity(dtoUzyTavAnexoSPR);
...@@ -65,7 +65,7 @@ public class ServiceUzyTavAnexoSPR implements IServiceUzyTavAnexoSPR{ ...@@ -65,7 +65,7 @@ public class ServiceUzyTavAnexoSPR implements IServiceUzyTavAnexoSPR{
String fileName = uzytavanexospr_id + "_" + file.getOriginalFilename(); String fileName = uzytavanexospr_id + "_" + file.getOriginalFilename();
// Mueve el archivo de la ubicación temporal a la ubicación final // 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_nombre(fileName);
uzyTavAnexoSPR.setUzytavanexospr_url(fileUrl); uzyTavAnexoSPR.setUzytavanexospr_url(fileUrl);
......
...@@ -16,7 +16,7 @@ import java.util.*; ...@@ -16,7 +16,7 @@ import java.util.*;
@Service @Service
public class ServiceUzyTavConvoca implements IServiceUzyTavConvoca{ 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 DaoUzyTavConvoca daoUzyTavConvoca;
private final UzyTavConvocaMapper modelMapper; private final UzyTavConvocaMapper modelMapper;
private final IFileStorageService fileStorageService; 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