我有一个html与asp的C#后端应用程序,在那里我想显示一个字符串的格式“数据:图像/bmp;base64”+iframe内的base64编码字符串。
服务器代码正在生成字符串:
using (MemoryStream stream = new MemoryStream())
{
bitmap.Save(stream, ImageFormat.Bmp);
stream.Position = 0;
content = Convert.ToBase64String(stream.ToArray()); // base64EncodedString
}
并且前端iframe应在按下按钮时显示:
<form method="POST" runat="server">
<asp:Button runat="server" id="button1" class="btn" Text="Next"/>
<iframe id="iframe" runat="server" class="iframe"></iframe>
</form>
<script>
window.onload = function () {
document.getElementById("<%=iframe.ClientID %>").src="data:image/bmp;base64,"+"<%=content %>";
}
</script>
内容字段被正确地填充和共享(如可以在警报中显示的),例如;“数据:图像/位图;碱基64,但iframe保持空白。
你能告诉我是什么原因造成的吗?如何解决?谢谢!
我试过使用不同的前后通信模型,包括json, AJAX 等,我也试过从asp服务器端更新iframe src,但是由于content变量是正确的,我认为问题出在前端。
1条答案
按热度按时间myzjeezk1#
好吧,你的目标是“必须”使用iframe,还是你在乎?
我的意思是,为什么不直接放入一个图像控件,甚至一个“div”,然后将图像字符串推入那个div或图像控件呢?
因此,让我们放下一个按钮,然后从一个有一列二进制图像的数据库中提取一行,通过将该二进制图像转换为base64图像字符串,我们可以自由地将该字符串插入图像中。
所以,假设这个标记:
后面的代码是:
现在,当我们点击按钮时,我们会得到这个:
所以,你是否需要/想要一个iFrame还不是很清楚?