2016-11-04 6 views
0

byte[]に画像を変換してサーブレットで送信します。 イメージをbyte[]に変換しましたが、クライアントに送信しますか?サーブレットJavaからbyte []を送信する方法

protected void doGet(HttpServletRequest request, HttpServletResponse response) 
    throws ServletException, IOException { 

    String name=request.getParameter("name"); 
    File f = new File("/Users/shilu/MyProject/Chat/Photo/" + name); 
    byte[] data = Files.readAllBytes(f.toPath()); 
    //What to do now?? 
} 
+0

どのような種類:

だからここにあなたがpngを送信すると仮定すると、コードは次のようなものだろうか? png、jpg ...? –

答えて

1

画像の種類に応じてcontent typeを指定する必要があるため、画像の種類によって異なります。画像の

// Set the media type matching with my image 
response.setContentType("image/png"); 
// Write the data 
try (OutputStream out = response.getOutputStream()) { 
    out.write(data); 
} 
+1

暗黙の 'close()'もフラッシュを実行するので、 'flush()'は不要です。 – Kayaman

+0

@Kayaman必要があるかどうか、私は[OutputStream#close()](https://docs.oracle.com/javase/8/docs/api/)の文書にはっきりと見ていませんか? java/io/OutputStream.html#close--)経験によっても、それは近いうちにフラッシュされるでしょう、私はそれが実行されることを知っています、実装固有のかもしれません。 –

+1

私はそれが実装固有であると言うことをためらうだろう。私は、あまり設計されていないストリームは、それらをフラッシュせずにバイトを破棄すると言うでしょうが、 'OutputStream'は動作を指定しません。しかし、基本的にすべてのカスタム 'OutputStreams'のスーパークラスである' FilterOutputStream'は、クローズ時にフラッシュして、そうするように指示します。私はこれらのようなケースでは、コードを書くのは面倒ではありませんが、YMMVです。 – Kayaman

関連する問題