diff --git a/src/main/java/com/ntlab/irisserver/resources/DrawingsRest.java b/src/main/java/com/ntlab/irisserver/resources/DrawingsRest.java index e5ee3e8..131f279 100644 --- a/src/main/java/com/ntlab/irisserver/resources/DrawingsRest.java +++ b/src/main/java/com/ntlab/irisserver/resources/DrawingsRest.java @@ -12,15 +12,17 @@ import javax.ws.rs.*; import javax.ws.rs.core.MediaType; +import javax.ws.rs.core.Response; import java.io.IOException; @Component @Path("/rooms") -public class DrawingsRest { - private ApplicationContext applicationContext; +public class DrawingsRest implements ApplicationContextAware { - public void setApplicationContext(ApplicationContext applicationContext) throws BeansException { + private org.springframework.context.ApplicationContext applicationContext; + + public void setApplicationContext(org.springframework.context.ApplicationContext applicationContext) throws BeansException { this.applicationContext = applicationContext; } @@ -32,37 +34,39 @@ return null; } - // 絵のデータ取得 + // 絵のデータ取得(パスを渡せば良い) @GET @Path("/{rid}/game/drawings/{dno}") @Produces(MediaType.APPLICATION_JSON) public Drawing getDrawing(@PathParam("rid") String rid, @PathParam("dno") int dno ) { - RoomManager roomManager = RoomManager.getInstance(); - Room room = roomManager.getRoom(rid); - Game game = room.getGame(); - // まだgameのメソッドが出来ていないのでコメントアウト - // Drawing drawing = game.getDrawing(dno); - // return drawing; + + // いったんnullにしとく return null; } // 描いた絵を送る @PUT @Path("/{rid}/game/drawings/{dno}") + @Produces(MediaType.APPLICATION_JSON) public String putDrawing(@PathParam("rid") String rid, @PathParam("dno") int dno, @FormParam("drawing") String drawing ) { - RoomManager roomManager = RoomManager.getInstance(); - Room room = roomManager.getRoom(rid); - Game game = room.getGame(); - - // まだgameのメソッドが出来ていないのでコメントアウト - // game.putDrawing(dno, drawing); - String path1 = ""; String path = ""; - // いったんnullにしとく - return null; + try { + path1 = applicationContext.getResource("file:").getFile().getAbsolutePath() + "/apache-tomcat-9.0.10/webapps"; + System.out.println("保存前のディレクトリのパス:" + path1.toString()); + System.out.println("クライアントから届いたBASE64の文字列"+ drawing.toString()); + // utilsのBase64Decodeにデコードしてもらって、そのついでに保存してもらう + path = Base64Decode.saveAsFile(rid, dno, path1, drawing); + } catch (IOException e) { + e.printStackTrace(); + throw new WebApplicationException(500); + } + System.out.println("画像デーをが追加しました。これがパス:" + path); + + return "画像のサーバー保存完了"; } + } diff --git a/src/main/java/com/ntlab/irisserver/utils/Base64Decode.java b/src/main/java/com/ntlab/irisserver/utils/Base64Decode.java index 2e4a135..bcde778 100644 --- a/src/main/java/com/ntlab/irisserver/utils/Base64Decode.java +++ b/src/main/java/com/ntlab/irisserver/utils/Base64Decode.java @@ -12,10 +12,10 @@ //デコードを行う byte[] dedata = Base64.getDecoder().decode(enimage); - //ファイルがないときは作成する - String fileName = "r" + rid + "d" + dno.toString() + ".png"; - String path2 = "/gallery/"+ rid + "/"+ dno.toString(); - String path = path1 + path2 + "/" + fileName; + //ファイルを作成する + String fileName = rid + "-" + dno.toString() + ".png"; + String path2 = "irisdata"; + String path = path1 + "/" + path2 + "/" + fileName; System.out.println(path.toString());