Newer
Older
tampopo-server / src / main / java / org / ntlab / tampoposerver / utils / Base64Decode.java
package org.ntlab.tampoposerver.utils;

import java.io.*;
import java.util.Base64;

public class Base64Decode {

    //pathの位置にenImageをdecodeしたものを保存
    private static void saveAsFile(String path, String enImage) throws IOException{
        File file = new File(path); //pathの位置にfile作成準備

        //enImageがnullならfile削除
        if(enImage == null) {
            file.delete();
            return;
        }

        //enImage(文字列)をバイナリデータに変換
        byte[] deData = Base64.getDecoder().decode(enImage);

//        //親ディレクトリを作成し実際にfile作成
//        file.getParentFile().mkdirs();
//        file.createNewFile();
//
//        //書き込み
//        FileOutputStream fileOS = new FileOutputStream(file, false);
//        BufferedOutputStream bf = new BufferedOutputStream(fileOS);
//        bf.write(deData, 0, deData.length);
//        bf.close();

        // 親ディレクトリを作成(再帰的に)
        File parent = file.getParentFile();
        if (!parent.exists()) {
            parent.mkdirs();
        }

        // 上書きモードでファイル保存(存在しててもOK)
        try (BufferedOutputStream bf = new BufferedOutputStream(new FileOutputStream(file, false))) {
            bf.write(deData);
        }

    }

    //{path1}/icon{id}.jpg に enImageをdecodeしたものを保存
    public static String saveIcon(String id, String path1, String enImage) throws IOException {
        String fileName = "icon" + id + ".jpg";
        String path = path1 + "/" + fileName;

        saveAsFile(path, enImage);

        return fileName;
    }

}