画像をサーブレットにアップロードして投稿するために単純なHTMLページを使用してから、画像をbyte []に変換し、次のdoPost()
メソッドを使用してセッションに保存します。
response.setContentType("text/html");
items = upload.parseRequest(request);
byte[] byteArray = item.get();
request.getSession().setAttribute("image1", byteArray);
out.println("<html>");
out.println("<body onload='javascript:callParent()'>File uploaded successfully.");
out.println("<img src='/ImageUpload' alt='' id='img2' name='img2' />");
out.println("</body>");
out.println("</html>");
imgタグのsrcで同じサーブレットを呼び出し、doGet()でbyte []をセッションに保存し、次のように送り返します。
response.setContentType("image/jpeg");
byte[] byteArray =(byte[])request.getSession().getAttribute("image1");
OutputStream output = response.getOutputStream();
output.write(byteArray);
output.close();
このコードはMozillaでは正常に機能しますが、IEでは機能しません。赤いXのみが表示されていますが、img
タグは画像サイズに応じて広くなっていますが、何も表示されていません。また、送信ボタンを2回クリックすると、フォームがIEで送信され、他の場合は1回のクリックで送信されます。
IE-8を使用していますが、画像の種類は.JPEGです。Webで検索しようとした設定の問題はありますが、結果はありません。