我有base64字符串,我想使用Spring的RESTController在img标记上打印base64图像。
@CrossOrigin(origins = "*", maxAge = 3600)
@RestController
@Validated
public class TestController {
@RequestMapping(value = "/image/test", method = RequestMethod.GET, produces = MediaType.IMAGE_PNG_VALUE)
public byte[] getImage() throws Exception {
String base64 = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAYIAAACzCAY...."; //from DB
byte[] decodeBase64 = Base64.decodeBase64(base64);
return decodeBase64;
}
}
<html>
<body>
<img src="http://localhost:8080/myProject/image/test"/>
<body/>
</html>
图像不输出。有什么问题?
您就快到了,只需从字符串中移除data:image/png;base64,
part即可。这是因为在IMG src
中使用的是字节而不是base64字符串。
@RequestMapping(value = "/image", method = RequestMethod.GET)
public byte[] getImage() {
String base64 = "<BASE64 STRING WITHOUT `data:image/png;base64,` part>";
byte[] decodeBase64 = Base64.decodeBase64(base64);
return decodeBase64;
}
您的html将保持不变。
<html>
<body>
<img src=http://localhost:8080/image />
<body/>
</html>
和服务: 例外情况 和异常控制器 如何才能在相同的方法中返回Zip文件或json消息?问题是,produces=“application/zip”,如果不这样做,就会收到正确的错误json,但它不会下载文件,否则反之亦然,谢谢
我希望能够在RestController方法(或endpoint)作为数据流序列化为HttpServletResponse之前修改它返回的POJO。但是我希望能够在控制器方法代码之外(作为中间件)完成。 我曾尝试使用HandlerInterceptor来完成此操作,但我无法访问POJO。我也尝试过使用AOP,但从未调用切入点。 我希望能够在控制器执行自己的逻辑并返回后,向控制器返回的资源添加列表(
我试图测试我的RestController代码(Spring Boot项目),但我总是得到404。以下是我目前掌握的情况: } } 结果总是这样: 我做错了什么?我已经尝试过直接在setUp方法中用标准设置()初始化mockmvc,我还使用了@SpringBootTest和@AutoConfigreMockMvc相结合。 有人有什么有用的提示吗?我使用spring boot 2.1.4。 谢谢
我正在为我的REST Web服务使用Spring@RESTController。我尝试在rest方法中返回ResponseEntity对象的对象,而不是返回ModelAndView的对象。对于Strgin类型的响应,当我用一个Jaxbobject构建ResponseEntity时,它会给出HTTP错误406 下面不起作用
我在Spring Boot服务中有一个rest控制器,如下所示: 我可以让服务生成八位元组流和application/Json,但我的困惑在于出现错误时字节数组的返回类型,在这种情况下,我希望生成Json而不是字节数组 请给我出主意如何解决这个问题
我有一个Spring MVC控制器,方法如下: 它位于一个开始如下所示的控制器内部: 我使用的是Spring WebMVC 4.1.3和Jackson 2.4.3。我尝试在RequestMapping中添加一个“produces”属性,表示它应该返回JSON。在本例中,发回的Content-Type属性是“application/json”,但仍然没有引用测试字符串。 我可以通过调用JSON库将J