为什么上传的图像没有在IE中显示?

时间:2012-10-24 19:18:01

标签: java internet-explorer servlets

我使用简单的HTML页面上传并将图像发布到servlet然后我在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中我调用相同的servlet并在doGet()中获取存储在session中的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标签根据图像大小变宽但没有显示任何东西。 当我单击提交按钮两次然后表单在IE中提交时,只需单击即可提交。

我使用的是IE-8,图像是.JPEG类型。 是否有任何设置问题我试图在网上搜索但没有任何结果。

2 个答案:

答案 0 :(得分:0)

问题在于您关闭了输出流,因此无法继续加载。

答案 1 :(得分:0)

实际上我正在使用body标签的onload()事件来自动打开浏览按钮。

    <body onload='frm1.imgUpload.click()'>
 <form action="ImgUpload" method="POST" enctype="multipart/form-data" name="frm1"  id="frm1">
    <input type='file' id = 'imgUpload' name = 'imgUpload'  onchange='frm1.submit()' />
</form>
   </body>

但当我删除用于打开浏览java脚本的代码时,它开始正常使用IE我不知道IE和java脚本有什么问题现在我手动点击浏览按钮,一切正常。