在同一个webservice java中同时使用MULTIPART_FORM_DATA和APPLICATION_JSON

时间:2016-03-05 20:01:41

标签: java json web-services

这是我将代码保存在目录中的代码:

@POST
@Path("/imagestore")
@Consumes(MediaType.MULTIPART_FORM_DATA)
// @Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
public JSONObject uploadFile(@FormDataParam("file") InputStream file) {     
    String dirPath = servletContext.getContextPath()+"/images";
    File imagesDir = new File(dirPath);
    boolean dirCreated = true;
    if (!imagesDir.exists()) {
        try {
            dirCreated = imagesDir.mkdirs();
        } catch (Exception e) {
            e.printStackTrace();
        }           
    }
    if (dirCreated) {
        String filePath = dirPath + "/1.jpg";
        JSONObject obj = new JSONObject();
        // save the file to the server
        try {
            File newFile = new File(filePath);
            boolean fileCreated = true;
            if (!newFile.exists()) {
                fileCreated = newFile.createNewFile();
            }
            if (fileCreated) {
                FileOutputStream outpuStream = new FileOutputStream(newFile);
                int read = 0;
                byte[] bytes = new byte[1024];

                while ((read = file.read(bytes)) != -1) {
                    outpuStream.write(bytes, 0, read);
                }
                outpuStream.flush();
                outpuStream.close();
            }
        } catch (IOException e) {
            try {
                obj.put("error", e.getMessage());
            } catch (JSONException e1) {
                // TODO Auto-generated catch block
                e1.printStackTrace();
            }
            e.printStackTrace();
        }

        String output = "File saved to server location : " + filePath;

        try {
            obj.put("output", output);
            return obj;
        } catch (JSONException e) {
            e.printStackTrace();
            return null;
        }
    }
    return obj;
}

现在这个工作完美但我还需要将数据保存到数据库中,为此我还需要使用Json数据,但我不知道如何做这两件事同时也是因为你只能写一个消耗。 简单来说,我想要同时使用json(包含用户信息)和Mulipart_form_data(包含要在服务器上传的图像)。那么我该怎么做。我很感激帮助:)

0 个答案:

没有答案