JAVA Spring 返回图像字节 - 错误 406 不可接受
JAVA Spring returning image bytes - Error 406 not acceptable
我有下一期 - 每张图片发送请求:
<img src="getImage/9.jpg"/>
Spring MVC 控制器:
@Secured( "ROLE_ADMIN")
@RequestMapping(value = "/getImage/{img_name:.+}")
public byte[] getImage(@PathVariable String img_name) {
byte[] data;
try {
String realpath = "D:\Project\images\" + img_name;
Path path = Paths.get(realpath);
data = Files.readAllBytes(path)
}catch (IOException e){
data = null;
}
return data;
}
在浏览器方面,我收到下一个错误:
406 Not Acceptable
出现这种问题的原因可能是什么?我应该从服务器端发送什么数据才能使 <img src="getImage/9.jpg"?>
正常工作。
请在注册 ByteArrayHttpMessageConverter
的 spring-context.xml 文件中添加此代码
<mvc:annotation-driven> <mvc:message-converters> <bean class="org.springframework.http.converter.ByteArrayHttpMessageConverter"> <property name="supportedMediaTypes"> <list> <value>image/jpeg</value> <value>image/png</value> </list> </property> </bean> </mvc:message-converters> </mvc:annotation-driven
而 class 应该是
@Secured( "ROLE_ADMIN")
@RequestMapping(value = "/getImage/{img_name:.+}")
public ResponseEntity<byte[]> getImage(@PathVariable String img_name)
throws InternalServerError {
byte[] data;
try {
String realpath = "D:\Project\images\" + img_name;
Path path = Paths.get(realpath);
data = Files.readAllBytes(path)
}catch (IOException e){
data = null;
}
final HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.IMAGE_JPEG);
return new ResponseEntity<byte[]>(data , headers, HttpStatus.OK);
}
我有下一期 - 每张图片发送请求:
<img src="getImage/9.jpg"/>
Spring MVC 控制器:
@Secured( "ROLE_ADMIN")
@RequestMapping(value = "/getImage/{img_name:.+}")
public byte[] getImage(@PathVariable String img_name) {
byte[] data;
try {
String realpath = "D:\Project\images\" + img_name;
Path path = Paths.get(realpath);
data = Files.readAllBytes(path)
}catch (IOException e){
data = null;
}
return data;
}
在浏览器方面,我收到下一个错误:
406 Not Acceptable
出现这种问题的原因可能是什么?我应该从服务器端发送什么数据才能使 <img src="getImage/9.jpg"?>
正常工作。
请在注册 ByteArrayHttpMessageConverter
的 spring-context.xml 文件中添加此代码<mvc:annotation-driven> <mvc:message-converters> <bean class="org.springframework.http.converter.ByteArrayHttpMessageConverter"> <property name="supportedMediaTypes"> <list> <value>image/jpeg</value> <value>image/png</value> </list> </property> </bean> </mvc:message-converters> </mvc:annotation-driven
而 class 应该是
@Secured( "ROLE_ADMIN")
@RequestMapping(value = "/getImage/{img_name:.+}")
public ResponseEntity<byte[]> getImage(@PathVariable String img_name)
throws InternalServerError {
byte[] data;
try {
String realpath = "D:\Project\images\" + img_name;
Path path = Paths.get(realpath);
data = Files.readAllBytes(path)
}catch (IOException e){
data = null;
}
final HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.IMAGE_JPEG);
return new ResponseEntity<byte[]>(data , headers, HttpStatus.OK);
}