[Spring] 파일 업로드 수정 및 폼 구현

이신영·2024년 4월 9일
0

S0S

목록 보기
4/8
post-thumbnail

상품등록 서비스 수정

@Service
@RequiredArgsConstructor
public class ProductServiceImpl implements ProductService{

    final private ProductRepository productRepository;
    final private ResourceLoader resourceLoader;

    @Value("${image.upload.directory}")
    String imageUploadDirectory;

    private String saveImageFile(MultipartFile imageFile) {
        // UUID를 사용하여 파일 이름 생성
        String uuid = UUID.randomUUID().toString();
        String fileExtension = imageFile.getOriginalFilename().substring(imageFile.getOriginalFilename().lastIndexOf("."));
        String savedFilename = uuid + fileExtension;

        try {
            // 이미지 파일을 저장할 경로 설정
            Resource resource = resourceLoader.getResource(imageUploadDirectory);
            File uploadDir = resource.getFile();
            Path uploadPath = Paths.get(uploadDir.getAbsolutePath(), savedFilename);

            // 이미지 파일 저장
            Files.copy(imageFile.getInputStream(), uploadPath, StandardCopyOption.REPLACE_EXISTING);

            // 저장된 이미지 파일의 경로를 반환
            return savedFilename;
        } catch (IOException e) {
            e.printStackTrace();
            throw new RuntimeException("이미지 파일을 저장하는 중에 오류가 발생했습니다.", e);
        }
    }
    
    @Override
    public List<Product> findAllProduct(){
        List<Product> productList = productRepository.findAll();
        Collections.reverse(productList);
        return productList;
    }

}
    
  • 이미지 파일 저장 경로 수정 : 외부디렉터리를 사용하면 브라우저가 보안으로 로컬환경에서 가져오기 까다롭기때문에 프로젝트 내부의 정적 리소스에 저장
  • 게시글 리스트를 위한 findAllProduct 메서드 작성

게시글 리스트 폼

이미지 크기를 균일하게 처리

profile
후회하지 않는 사람이 되자 🔥

0개의 댓글