Java将json字节数组图像保存到特定位置

时间:2016-07-15 11:40:49

标签: java json java-api

我有一个应用程序发布json数据,如下所示

{
    "image": "data:image/png;base64,eAvQPaQEJCABCUjg/wNeEta73J3yXwAAAABJRU5ErkJggg==................"
}

它在“image”键中发布图像(png或jpg)base64字节数组。

我想将名为“datetime.png”的图像保存到指定位置。 为此我使用下面的代码:

@POST
@Consumes("application/x-www-form-urlencoded")
@Path("/getImage")
public Response GetImage(String json) {
    java.util.Date dt = new java.util.Date();
    java.text.SimpleDateFormat sdf = new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    sdf.setTimeZone(TimeZone.getTimeZone("IST"));
    String currentTime = sdf.format(dt);
    JSONObject returnJson = new JSONObject();

    try {
        JSONObject innerJsonObj = new JSONObject(json);
        String imageCode=innerJsonObj.getString("image");
        String base64Image = imageCode.split(",")[1];
        byte[] imageBytes = javax.xml.bind.DatatypeConverter.parseBase64Binary(base64Image);

        FileOutputStream fos = new FileOutputStream("D:\\image\\" + currentTime + ".png");
        try {
            fos.write(imageBytes);
        } finally {
            fos.close();
        }

        returnJson.put("success", true);
    } catch (Exception e) {
        JSONObject errorJson = new JSONObject();
        errorJson.put("success", false);
        return Response.ok(errorJson.toString()).header("Access-Control-Allow-Origin", "*").build();
    }

    return Response.ok(returnJson.toString()).header("Access-Control-Allow-Origin", "*").build();
}

但是它给了我以下错误

  

java.io.FileNotFoundException:D:\ image \ 2016-07-15 17:04:34.png(The   文件名,目录名或卷标语法不正确)

0 个答案:

没有答案