为什么上传的图片在IE中不显示?

问题描述 投票:0回答:2

我使用简单的 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() 中获取存储在会话中的 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

设置有问题吗?我尝试在网上搜索,但没有任何结果。

java internet-explorer servlets
2个回答
0
投票

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


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 脚本有什么问题,现在我手动单击浏览按钮,一切正常。

© www.soinside.com 2019 - 2024. All rights reserved.