0

我正在尝试在 C# ASP.NET 项目中使用 XML / XSLT 技术显示数据库中的图像。这是一个代码示例,展示了我如何使用 XSLT。

/// <summary>
/// Get HTML form xml 
/// </summary>
/// <param name="xsltPath">the path to the xsl stylesheet</param>
/// <param name="xml">contain the xml</param>
/// <returns>the html</returns>
public string GetHtmlFrom_XML_XSL(string xsltPath, string xml) 
{
    xml = this.CleanString(xml);
    MemoryStream stream = new MemoryStream(ASCIIEncoding.UTF8.GetBytes(xml));
    XPathDocument document = new XPathDocument(stream);
    StringWriter writer = new StringWriter();
    XslCompiledTransform transform = new XslCompiledTransform();
    transform.Load(xsltPath);
    transform.Transform(document, null, writer);
    return writer.ToString();
}

我现在必须在 SQL 服务器中显示来自 blob 的图像......我不知道该怎么做。我尝试在 xsl 表中使用 .ashx 处理程序,如下所示:

    <img height="150" width="120">
      <xsl:attribute name="src">~/ImageHandler.ashx?atoContactId=<xsl:value-of select="owner/picture" /></xsl:attribute>
      <xsl:attribute name="alt">
        <xsl:value-of select="owner/name" />
      </xsl:attribute>
    </img>

但是当然,XSLT 生成的 html 是在浏览器中流式传输的,没有处理 src 属性的请求 HTTP。这会产生一个空图像(红十字)。

有什么方法可以工作,或者我应该忘记 XML / XSLT 来显示 blob 图像?

4

1 回答 1

2

这里这里是答案,如何从 sql server 读取 blob。

一般来说,您必须先从 sql server 读取图像。然后你可以使用任何你想在页面上显示的技术。

于 2013-09-10T11:27:58.197 回答