diff --git a/src/main/java/org/ntlab/tampoposerver/utils/Base64Decode.java b/src/main/java/org/ntlab/tampoposerver/utils/Base64Decode.java index c010427..27271aa 100644 --- a/src/main/java/org/ntlab/tampoposerver/utils/Base64Decode.java +++ b/src/main/java/org/ntlab/tampoposerver/utils/Base64Decode.java @@ -18,16 +18,27 @@ //enImage(文字列)をバイナリデータに変換 byte[] deData = Base64.getDecoder().decode(enImage); - //親ディレクトリを作成し実際にfile作成 - file.getParentFile().mkdir(); - file.createNewFile(); +// //親ディレクトリを作成し実際に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(); - //書き込み - FileOutputStream fileOS = new FileOutputStream(file, false); - BufferedOutputStream bf = new BufferedOutputStream(fileOS); - bf.write(deData, 0, deData.length); + // 親ディレクトリを作成(再帰的に) + File parent = file.getParentFile(); + if (!parent.exists()) { + parent.mkdirs(); + } - bf.close(); + // 上書きモードでファイル保存(存在しててもOK) + try (BufferedOutputStream bf = new BufferedOutputStream(new FileOutputStream(file, false))) { + bf.write(deData); + } + } //{path1}/icon{id}.jpg に enImageをdecodeしたものを保存