Java

FTP 서버에 이미지 저장하기 (NAS 서버에 이미지 저장)

소금토스트 2024. 12. 14. 14:59
728x90
반응형
SMALL
반응형
SMALL
728x90

FPT NAS서버에 이미지를 저장하는코드이다.

   private String saveImage(MultipartFile image) {
        String server = "FTP 서버 IP";  // FTP 서버 IP
        String username = "FTP 서버 사용자명"; // FTP 서버 사용자명
        String password = "FTP 서버 비밀번호"; // FTP 서버 비밀번호
        String remoteDir = "저장할 원격 디렉토리";  // 저장할 원격 디렉토리

        FTPClient ftpClient = new FTPClient();
        try {
            // FTP 서버에 연결
            ftpClient.connect(server);
            ftpClient.login(username, password);

            // FTP 서버에 접속이 성공하면, FTP 전송 모드 설정
            ftpClient.setFileType(FTP.BINARY_FILE_TYPE);
            ftpClient.enterLocalPassiveMode();  // 패시브 모드로 설정

            // 파일을 업로드할 InputStream 생성
            InputStream inputStream = image.getInputStream();

            // 원격 파일 경로 설정 (파일 이름 그대로 사용)
            String remoteFile = remoteDir + image.getOriginalFilename();

            // 파일 업로드
            boolean success = ftpClient.storeFile(remoteFile, inputStream);
            inputStream.close();

            if (success) {
                // 업로드된 파일의 경로를 반환
                return remoteFile;  // FTP 경로를 반환하고, 클라이언트에서 HTTP 경로로 요청하게 함
            } else {
                throw new RuntimeException("FTP 업로드 실패");
            }
        } catch (IOException e) {
            e.printStackTrace();
            throw new RuntimeException("파일 저장에 실패했습니다.");
        } finally {
            try {
                if (ftpClient.isConnected()) {
                    ftpClient.logout();
                    ftpClient.disconnect();
                }
            } catch (IOException ex) {
                ex.printStackTrace();
            }
        }
    }

 

728x90
반응형
LIST