如何从ajax响应中显示.png格式图像?

时间:2009-09-12 13:01:32

标签: ajax

我发送ajax response.getOutputStream()。write(encoder.pngEncode())image,以字节为单位, 我希望在运行时在我的jsp中显示来自ajax响应的图像是否可能? 你能不能请任何人解决这个问题。

在Servlet类中:

chartImage = chart.createBufferedImage(400, 300);       
        PngEncoder encoder = new PngEncoder(chartImage, false, 0, 9);

        resp.setContentType("image/png"); 
        resp.setHeader("Cache-Control", "no-cache");
        resp.getOutputStream().write(encoder.pngEncode());

在JSP中:

if (bbyHttpRequest.readyState == 4) 
    { 
        if(bbyHttpRequest.status == 200) 
        { 
        alert("inside ajax call");

        var respone=bbyHttpRequest.responseText;

        alert("respone----------->"+respone);

        //var i = new Image();
        //i.src = respone;

           //document.getElementById("imgChart1").innerHTML = '<%=request.getContextPath() + "/CreateOMSMonitorScreenTest" %>';
          // document.getElementById("imgChart1").value = '<%=request.getContextPath() + "/CreateOMSMonitorScreenTest" %>';
          document.getElementById("imgChart1").value=respone;

        } 
        else 
        {
        alert(' Dynamic call to web server failed.Please refresh the page. ');
        } 
    }   

2 个答案:

答案 0 :(得分:2)

如果您有一台返回PNG图像的服务器,则不必使用ajax,您可以使用简单的HTML:

<img src='myServer.thing?param=value' alt='Loading Failed' />

您可以使用JavaScript来处理img代码的错误。

答案 1 :(得分:1)

data urls,因此您可以创建类似&lt; img src =“data:image / png; base64的标记, iVBORw0KGgo ......“/&gt;

但是,IE6不支持,这对您来说可能是也可能不是问题。