以字符串形式返回数据

时间:2020-05-06 21:55:05

标签: java

我使用以下代码从Angular FE下载图像:

@RequestMapping(value = "/company_logo/{job_id}",method= RequestMethod.GET,produces = MediaType.IMAGE_PNG_VALUE)
    public @ResponseBody byte[] getImageWithMediaType(@PathVariable int job_id) throws IOException {

        ClassLoader classloader = Thread.currentThread().getContextClassLoader();
        InputStream is = classloader.getResourceAsStream("color.jpg");
        byte[] bytes = IOUtils.toByteArray(is);
        InputStream in = new ByteArrayInputStream(bytes);
        return IOUtils.toByteArray(in);
    }

但是我想返回的图像不是byte[],而是字符串。实施此操作的正确方法是什么?

1 个答案:

答案 0 :(得分:0)

通常,当您想通过HTTP返回二进制数据(例如图像)时,可以对二进制信息进行Base64编码,然后将其作为字符串返回。

在Java中,它作为标准库的一部分提供。对于您的情况,您可以选择使用Base64.Encoder类方法,然后仅返回这些方法。浏览器应基于响应标头识别信息已编码。