-1

I'm trying to read this POST request and extract the image. Then save it to disk, but the buffered image is null

Here is the code (the main part):

private void handleImage(String target, Request baseRequest, HttpServletRequest request,
            HttpServletResponse response) throws Exception{


        InputStream inStream = request.getInputStream();

        byte[] body = IOUtils.toByteArray(inStream);

        InputStream in = new ByteArrayInputStream(body);
        BufferedImage bImageFromConvert = ImageIO.read(in);

        ImageIO.write(bImageFromConvert, "png", new File(
                "hi.png"));
4

1 回答 1

1

除非您使用一种奇特的机制,例如将屏幕截图从闪存发送到服务器,否则您用于发送图像的表单可能是 multipart/form-data。在这种情况下,输入流不仅包含二进制图像信息,它是多部分编码的,因此还包含一些与文件相关的信息,以及其他表单元素。这是输入流的示例输出。当您尝试从该流创建图像时,由于多部分分隔符,它将无法解析。

------WebKitFormBoundaryrD6PkQsxtK9sZGBB
Content-Disposition: form-data; name="test"; filename="test.png"
Content-Type: image/png

[binarydata]

Apache commons 有一个库来解析您可以使用的多部分表单数据。 http://commons.apache.org/proper/commons-fileupload/

于 2013-10-27T01:24:40.163 回答