我正在使用简单的 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() 中获取存储在会话中的字节 [] 并将它们发送回如下:
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。是否有任何设置问题我试图在网上搜索但没有任何结果。