2013-09-09 3 views
0

Я пытаюсь отобразить изображение из базы данных с использованием технологии 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 для отображения изображения блоба?

+0

Что вы подразумеваете под "потоковым в браузере"? Каков ваш текущий результат, и что с ним не так? –

+1

У вас должны быть 'используемые' блоки вокруг ваших' MemoryStream' и 'StringWriter', например. –

ответ

2

Here и here - это ответы, как читать капли с сервера sql.

В общем, вы должны сначала прочитать изображение с сервера sql. Затем вы можете использовать любую технологию, которую вы хотите отобразить на странице.

+0

На самом деле это именно то, что я сделал. http: /AnyWebserverThatGetTheImageFromDB.com Thx :) – Deunz