gpt4 book ai didi

java - Spring Controller 将字符集添加到图像返回方法的内容类型 header

转载 作者:行者123 更新时间:2023-12-01 09:06:40 24 4
gpt4 key购买 nike

我正在编写一个简单的 Spring Controller 端点来从数据库返回图像,因此我拥有的图像是一个原始字节数组,我正在使用的代码:

    @RequestMapping(value = "/getphoto", method = RequestMethod.GET , produces = MediaType.IMAGE_GIF_VALUE)
public ResponseEntity<Resource> getphoto(@RequestParam(@RequestParam("uuid") UUID uuid) {

byte[] image = service.getPhoto(uuid);

HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.IMAGE_JPEG);
headers.setContentLength(image.length);

return new ResponseEntity<Resource>(new ByteArrayResource(image), headers, HttpStatus.OK);
}

问题是我正在获取图像字节,但内容类型始终附加有像这样的字符集 image/jpeg;charset=UTF-8 如何删除非文本 mime 的该字符集类型?我尝试使用字符串方法 headers.set("Content-Type", "image/jpeg"); 添加内容类型,但仍然没有乐趣!有什么建议么?我相信这个字符集阻止了很多测试客户端显示图像,例如 chrome 中的 postman 和 firefox 中的 Restclinet。

编辑我已经设法以多种方式删除字符集,但看起来这并不是我执行此端点的唯一问题,在restclinet中我得到:

Cannot preview image

Your response is an image, but we need to override the mime type to preview this image. Would you like to override the mime type to "text/xml; charset=x-user-defined" and re-send this request?

当我点击“yes please continue”时,图像可以在restclient中看到,

enter image description here在chrome的postman中,图像仍然没有显示。

最佳答案

您可能正在使用 CharacterEncodingFilter通过 spring boot、beans 或 web.xml 使用forceEncoding。这就是我所拥有的。

关于java - Spring Controller 将字符集添加到图像返回方法的内容类型 header ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41214613/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com