动态下载和显示图像

1dkrff03  于 2021-05-29  发布在  Hadoop
关注(0)|答案(0)|浏览(254)

我有以下要求。我在显示的页面中单击display链接。我调用javascript函数 displayImage 输入参数为 filename 以及 isDisplay . 在这个函数中,我生成一个 'img' 标记谁的 src="download?filename=DCS.jpg&isDisplay=true" .
我希望这个调用连接到hadoop的servlet,得到 bufferedImage 并写入响应 outputstream .
但是当我动态地生成img标记时,它没有显示图像,甚至没有调用servlet。
如何动态显示?
jsp代码:

<%List<String> filenames = (ArrayList<String>)request.getAttribute("filenames"); 
    if(filenames.size()>0){
        for (String filenme : filenames){                   
    %>
    <div id="filename">
        <a href="javascript:submit('<%=filenme%>', 'false')" onclick="javascript:submit('<%=filenme%>', 'false')"><%=filenme%></a>  
    </div>
    <div id="displink">
            <a href="javascript:displayImage('<%=filenme%>', 'true')" onclick="javascript:displayImage('<%=filenme%>', 'true')">Display</a>
    </div>          
    <div id="line"></div>
    <%  }
    }%>
    </div>
    <% %>
    <div id="displayImage">

    </div>

javascript代码:

function displayImage(imageName, isDisplay){
var display = document.getElementById('displayImage');
 var parameters = "filename="+imageName+"&isDisplay="+isDisplay;
 display.innerHTML="<img src=\"download?"+parameters+"\"";
 display.style.display="block";
}

servlet代码:

BufferedImage bi = ImageIO.read(fs.open(item.getPath()));
if (isDisplay) {
    resp.setContentType("image/"+extn);
    OutputStream out = resp.getOutputStream();
    ImageIO.write(bi, extn, out);
}

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题