ASP.NET:图像返回无效字符

o2gm4chl  于 2024-01-09  发布在  .NET
关注(0)|答案(1)|浏览(253)

我有一个ASP.NET页面,其中包含以下标记:

<td>
    <asp:FileUpload runat="server" ID="fileSignature" accept=".png,.jpg,.jpeg" />
</td>
<td>
    <asp:Button ID="btnUploadSignature" runat="server" Text="Upload" onclick="btnUploadSignature_Click" />
    <asp:Image ID="imgSignature" Visible = "true" runat="server" Height = "100" Width = "100" />
</td>

字符串
验证码:

protected void btnUploadSignature_Click(object sender, EventArgs e)
{
   string base64String = Convert.ToBase64String(fileSignature.FileBytes);// Convert.ToBase64String(bytes, 0, bytes.Length);

    imgSignature.ImageUrl = @"data:image/png;base64," + base64String;
}


当图片上传时,它不会显示。在浏览器上检查Image元素时,图片src现在变成这样:

<img id="ctl00_ContentPlaceHolder1_imgSignature" src="data%3Aimage/png%3Bbase64%2C


而不是

src="data:image/png;base64,....".


base64字符串也包含一些这种模式的替换字符。
有办法让图像src显示字符串吗?

biswetbf

biswetbf1#

好吧,既然你在你的标记中有一些“流浪”的“tr”,那么我怀疑这是某种类型的listView或其他嵌套类型的控件,因此你发出了一些我们在这里看不到的东西。
删除“杂散”“tr”,并使用以下标记:

<asp:FileUpload runat="server" ID="fileSignature" accept=".png,.jpg,.jpeg" />
    <br />

    <asp:Button ID="btnUploadSignature" runat="server" Text="Upload" 
        OnClick="btnUploadSignature_Click" />
    <br />

    <asp:Image ID="imgSignature" Visible="true" runat="server" 
        Height="100" Width="100" />

字符串
你的代码是“硬”编码为一种类型的png,但你允许不同的图像类型。
因此,此代码将根据文件扩展名使用正确的内容类型。
因此,这段代码:

protected void btnUploadSignature_Click(object sender, EventArgs e)
    {

        string sContentType = MimeMapping.GetMimeMapping(fileSignature.FileName);

        string base64String = Convert.ToBase64String(fileSignature.FileBytes);

        imgSignature.ImageUrl = $@"data:{sContentType};base64,{base64String}";

    }


因此:

所以,你的代码看起来是正确的,但是stay“tr”标签表明这里出现了更多的标记和控件嵌套。
尝试上面的示例代码。它工作得很好,因此你必须发布一个可复制的示例以获得进一步的帮助,因为上面的代码对我来说很好,而且在评论中,一个海报也指出了代码对他们也很有效。所以,这段代码对其他人都有效,除了你。

相关问题