Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/281.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何使用StringBuilder在HTML中附加图像字节数组_C#_Arrays - Fatal编程技术网

C# 如何使用StringBuilder在HTML中附加图像字节数组

C# 如何使用StringBuilder在HTML中附加图像字节数组,c#,arrays,C#,Arrays,我无法在动态HTML中附加图像。我得到了字节[]形式的图像, 所以我尝试将其转换为图像,并希望将其附加到字符串生成器中的HTML中 但我不能这样做。 我的代码在下面 public StringBuilder getEmailBackGroundTemplate(string CompanyName, byte[] CompanyLogo, string CompanyURL, string ContactPersonName) { StringBuilder sb = new Strin

我无法在动态HTML中附加图像。我得到了字节[]形式的图像, 所以我尝试将其转换为图像,并希望将其附加到字符串生成器中的HTML中

但我不能这样做。 我的代码在下面

public StringBuilder getEmailBackGroundTemplate(string CompanyName, byte[] CompanyLogo, string CompanyURL, string ContactPersonName)
{
    StringBuilder sb = new StringBuilder();
    sb.Append("<table cellpadding='0' cellspacing='0' border='0' width='100%'>");
    sb.Append("<tr>");
    sb.Append("<td style='width: 10%;'></td>");
    sb.Append("<td width='75%'>");
    sb.Append("<table width='100%' border='0' cellpadding='0' cellspacing='0' style='border: 1px solid #00497c;'>");
    sb.Append("<tr>");
    sb.Append("<td><a href='" + CompanyURL + "'>");

    if (CompanyLogo != null && CompanyLogo.Length > 0)
    {
        //Mohan: if Company logo exist then Attach in email
        MemoryStream ms = new MemoryStream(CompanyLogo, 0 ,CompanyLogo.Length);
        ms.Write(CompanyLogo, 0, CompanyLogo.Length);
        Image LogoImage = Image.FromStream(ms, true);

        sb.Append("<img src='" + LogoImage + "' border='0' style='margin-top: 5px; width: 175px; height: 53px; margin-left: 5px; margin-bottom: 5px;'></a></td>");
    }

    sb.Append("<td ></td>");
    sb.Append("</tr>");
    sb.Append("</table>");

    return sb;
}

我无法附加,请任何人帮助我如何在不另存为文件的情况下附加此文件。我想将其附加到stringbuilder中。

您需要将图像另存为文件并指向其源,或者阅读有关“数据URI”的信息


查看答案。

您可以将字节数组直接转换为base64字符串并用作数据URI,例如

var imageString = string.Format("data:image/png;base64,{0}", Convert.ToBase64String(CompanyLogo));
sb.Append("<img src='" + imageString + "' border='0' style='margin-top: 5px; width: 175px; height: 53px; margin-left: 5px; margin-bottom: 5px;'></a></td>");

这是Windows应用程序,我得到字节[]来自服务web服务关于将图像嵌入html的一些信息:如果您能详细说明一下,这将是一个很好的答案。代码示例将很好。根据要求,他们告诉它不会保存到任何地方,因此我需要得到答案,即我现在如何在不保存任何地方的情况下附加此图像。有1000个客户,每个客户有1000个客户,那么我可以节省多少?谢谢Chibueze Opata,这对我来说很好。感谢lotin gmail或outlook当我要附加此邮件时,它没有显示在gmail中是的,你应该提到你在gmail中使用的,你必须保存到在线主机并插入url。没有其他选项吗?没有储蓄我们就做不到?因为他们告诉我,我们不想将其保存在服务器上的任何文件夹中,所以他们说,将其保存为sql中的字节,然后像您给出的解决方案一样附加它。我要做的改变太多了,一些客户使用gmail的smtp,一些客户在outlook中使用,但他们在电子邮件中没有得到标识。gmail重新处理他们所有的电子邮件,他们不支持。即使你已经把它保存在你的服务器上,Gmail仍然会重写这些图片并将其放在他们自己的服务器上。