Я пытаюсь отобразить изображение из базы данных с использованием технологии XML/XSLT в проекте ASP.NET C#. Вот пример кода, показывающий, как я использую XSLT.Поток изображения блоба через процесс XML/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-сервере ... Я не знаю, как это сделать. Я пытался использовать обработчик .ashx в XSL лист, как что:
<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>
Но, конечно же, HTML производится с помощью XSLT потоковый в браузере, и запрос HTTP атрибута SRC не обрабатываются. Это приводит к пустому изображению (красный крест).
Есть ли какой-либо способ работы или я должен забыть XML/XSLT для отображения изображения блоба?
Что вы подразумеваете под "потоковым в браузере"? Каков ваш текущий результат, и что с ним не так? –
У вас должны быть 'используемые' блоки вокруг ваших' MemoryStream' и 'StringWriter', например. –