Spring MVC图像响应内容类型集text/html
我有一个简单的控制器方法来返回像Spring MVC图像响应内容类型集text/html,spring,spring-mvc,model-view-controller,content-type,Spring,Spring Mvc,Model View Controller,Content Type,我有一个简单的控制器方法来返回像 @RequestMapping(value = "{id}", method = RequestMethod.GET) public ResponseEntity<InputStreamResource> get(@PathVariable Long id, @RequestParam Map<String, String> params) { ResponseEntity<InputStreamResource
@RequestMapping(value = "{id}", method = RequestMethod.GET)
public ResponseEntity<InputStreamResource> get(@PathVariable Long id, @RequestParam Map<String, String> params) {
ResponseEntity<InputStreamResource> response = null;
MyImage image = getImage(id);
HttpHeaders respHeaders = new HttpHeaders();
String contentType = image.getContentType();
if (contentType != null) {
respHeaders.setContentType(MediaType.valueOf(contentType));
}
respHeaders.setContentLength(image.getLength());
respHeaders.setContentDispositionFormData("attachment", image.getFilename());
InputStreamResource isr = new InputStreamResource(fileInfo.getInputStream());
response = new ResponseEntity<InputStreamResource>(isr, respHeaders, HttpStatus.OK);
return response;
}
它的图像具有内容类型,将设置它,并且响应具有正确内容类型的相应标题,但如果未设置内容类型,则客户端响应具有内容类型text/html
如果内容类型未知,我喜欢删除内容类型标题,但即使从标题映射中删除内容类型标题也没有帮助。你知道怎么回事吗?Spring版本是3.2.14。根据,您可以编写如下内容:
@RequestMapping(value = "{id}", method = RequestMethod.GET,produces = "image/*")
或
不在ResposeEntity中指定内容类型
@RequestMapping(value = "{id}", method = RequestMethod.GET,produces = {MediaType.IMAGE_JPEG_VALUE,MediaType.IMAGE_PNG_VALUE})