6

Spring コントローラーで画像を返す必要があります。このSpring MVCで答えてみます: @ResponseBodyで画像を返すには? しかし、それは機能していません

私のコードはこのようなものです

@RequestMapping(value = "cabang/photo", method = RequestMethod.GET)
@ResponseBody
public ResponseEntity<byte[]> getPhoto() throws IOException {

     File imgPath = new File("D:\\test.jpg");

    byte[] image = Files.readAllBytes(imgPath.toPath());
    HttpHeaders headers = new HttpHeaders();
    headers.setContentType(MediaType.IMAGE_JPEG);
    headers.setContentLength(image.length);
    return new ResponseEntity<>(image, headers, HttpStatus.OK);
}

しかし、ブラウザーでアクセスすると、何も表示されません (画像アイコンが表示されないだけです)。しかし、画像のバイト配列を読み取ると、空ではありません。コードに何か欠けているものはありますか?

4

1 に答える 1

1

あなたのコードは問題ないようです。ByteArrayHttpMessageConverterアプリケーションの http メッセージ コンバーターのリストに追加したことを確認してください。

Java 構成:

@Override
public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
    ByteArrayHttpMessageConverter byteConverter = new ByteArrayHttpMessageConverter();
    converters.add(byteConverter);
    super.configureMessageConverters(converters);
}
于 2015-11-03T10:59:09.457 に答える