0

ある時点でたくさんの写真を含むページをレンダリングするJavaWebアプリケーションがあります。これらの画像は、htmlimgタグとしてjspに挿入されています。ユーザーはブラウザでそれらを見ることができます。

写真の量が増えており、gridfsで移動することを考えています。

私の質問:ファイルを選択して、ハードドライブに書き込まずにWebページのクライアントに提示する方法はありますか?

imgリンクを含むさまざまなページに対する多数の同時httpリクエストであることに言及する必要があります。

4

1 に答える 1

0

答えが見つかりました。ブラウザで画像を見ることができるので、ハイパーリンクとして使用します

@RequestMapping (value = "/test", method = RequestMethod.GET, produces = MediaType.IMAGE_JPEG_VALUE)
@ResponseBody
public byte[] test(HttpServletRequest request) {
    //curl -v http://localhost:8080/Bikeshop/admin/test > /dev/null
    String realPath = request.getSession().getServletContext().getRealPath("/resources/images/catalog/sample.jpg");

    try {
        InputStream is = new FileInputStream(realPath);
        BufferedImage img = ImageIO.read(is);
        ByteArrayOutputStream bos = new ByteArrayOutputStream();
        ImageIO.write(img, "jpg", bos);
        return bos.toByteArray();
    } catch (FileNotFoundException e) {
        e.printStackTrace();  //To change body of catch statement use File | Settings | File Templates.
    } catch (IOException e) {
        e.printStackTrace();  //To change body of catch statement use File | Settings | File Templates.
    }

    return null;
}
于 2012-10-26T21:58:04.440 に答える