Java

[Java] URL To Base64, URL을 Base64로 변환

simba 2020. 12. 23. 19:58

Base64란?

8bit의 이진데이터를 공통 ASCII문자들로 이루어진 문자열로 바꾸는 인코딩 방식으로 , 바이너리 데이터를 String 형태로 변경하는 것이다.

- 신뢰할 수 없는 통신에서도 안전하게 데이터를 전송하기 위해 사용

- 길이가 늘어나지만, base64는 안전한 출력문자만 사용

 


        // 바꾸고자 하는 url
        String exampleUrl="http:// ~";
        URL url = new URL(exampleUrl);
        BufferedImage img = ImageIO.read(url);
        // URL을 통해 File 생성
        File file = new File("downloaded.jpg");
        ImageIO.write(img, "jpg", file);

        InputStream finput = new FileInputStream(file);
        byte[] imageBytes = new byte[(int)file.length()];
        finput.read(imageBytes, 0, imageBytes.length);
        finput.close();
        String filePathName = exampleUrl.replace("file:///", "");
        String fileExtName = filePathName.substring( filePathName.lastIndexOf(".") + 1);
       // Base64
        String imageStr = Base64.encodeBase64String(imageBytes);


        // 밑에 changeString은 img 태그안에 쓰이는 용입니다. 위에만 참고하셔도 괜찮아요!
        String changeString = "data:image/"+ fileExtName +";base64, "+ imageStr;