Как загрузить изображение из двоичных данных в Asp.Net? - PullRequest
2 голосов
/ 12 декабря 2011

Я новичок в технологии .net. Я использую VS2008, C #, Asp.Net 3.5 Framework, SQL SERVER 2005. В таблице базы данных 'Cust_M_Tbl' есть поле типа varchar (500) viz Cust_Image. Значение в Cust_Image составляет

mspZVnmQlz1GgRRpQEqBFGTHeUELiUhxQQ2GQU9BF3DCUYEeaiJJAQQLKGCBDYcySMENDi9qgQWJv0xBEe8sWkEEDr19QQWMxVoBE20odAEGFDtZAQeBtUtBDn7NUkEd0ytIAQl/r4WBBooWTAEHiCSGAQiMyjEBCFG+KYELYSoowQzluisBBt1NTwEYSM4hgQ5LTTpBD0e5KUEGYa0ugQxqoCLBCWgZKcEKcJJZQQ2DM1nBBAszVoEHiQMSZGhtcwEGCgwPExQUExMUFAMSYmVqcHUECQsOEBMTEhITFAISZWVobnUDCA0PERMVFRQUFRUDEWBjaG5yAQYLDg8REREREQISamlqb3UFCQ0PEhMUFRUWFhYDEV9hZmxxdQMJDQ4PEBEREQIRa2xucXcGCg0PEhMVFhgZGQQRY2ZpbXIBBgsNDxASExQDEHJzdgMHDA0PEBMVFxgZBBFiY2ZpbnMDCQsNDxIVFwMPc3YDBgkNDQ4PExQWGAQRXl9hY2ZqcwQIDBATFxgEDgQHCgwPDQ8PEhMVAxFXWFlcXV9hbXYFCxIWGRoGDA0ODwsODxMDEFVXV1dVVltkcwYOFhodAAD/Aw1PUVFQTk5RV2YKEQAA/wQMR0VFR0ZJQz0xAAD/BQdCQkMY8B0ZtKlQFCF/MssEMp7YkXe5scQP8fmd96ZVrvO8oGFXhoDAjEe5o+U/XAnxKOTp9vDgoSTOH22Eg2rytkcs9uqvFV7GSeUaetGWD0jVWeSqCuD6Sb6l/KxsWXbH1iDoY8LJhgKhkvVBei3Xmp4gx74bl58QiXckdX0KgxJhDWSa/zDvZvGfSVKVLvXzhv8/A+3tV1M36hSdkpPukozfqJj4O9ELUHNNUj8SRvFr0do7bU6tXqEbVubYYiVnalpHbCb07QoVPsO402Lwu3d9vnk6+bnZ/zbgpmAm4zfCLQrlOseeQ4XOarfqeCA14qS2EWZxATfilss++PYY+xymdxgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGA==

Я хочу показать это изображение клиента на моей веб-странице. Как мне это сделать? Должен ли я расшифровать это? или это в любом другом формате? Любая помощь будет оценена. С уважением,

Ответы [ 2 ]

1 голос
/ 12 декабря 2011

После декодирования как @Christophe Geers предложил использовать

string encodedString = "your image data encoded as base 64 char array";
byte[] data = Convert.FromBase64String(encodedString);

Response.BinaryWrite(data);

, может быть, это может помочь больше: http://odetocode.com/articles/172.aspx

0 голосов
/ 12 декабря 2011

Это выглядит как Base64 кодировка . Вы можете найти онлайн декодер здесь:

http://en.wikipedia.org/wiki/Base64

Он проверяет ваш ввод как допустимый массив символов Base-64.

Вы можете декодировать строку base64 в C # следующим образом:

string encodedString = "your image data encoded as base 64 char array";
byte[] data = Convert.FromBase64String(encodedString);

Для получения дополнительной информации ознакомьтесь со статьей FromBase64String о MSDN.

Теперь вы хотите отобразить изображение на веб-странице ASP.NET (* .ASPX).

например:.

<img src="myimage.jpg" />

Вместо того, чтобы ссылаться на фактический файл изображения (например, myimage.jpg), вы хотите сослаться на обработчик ASP.NET (* .ASHX), который обслуживает байты изображения (массив byte [] с именем data в предыдущем пример кода).

например:.

<img src="ImageHandler.ashx" />

Код для обработчика изображений выглядит примерно так:

public class ImageHandler : IHttpHandler
{
    public void ProcessRequest(HttpContext context)
    {
        // Load the image (see previous code sample)
        byte[] data = ...;

        // Display the image
        context.Response.OutputStream.Write(data, 0, data.Length);
        context.Response.ContentType = "image/JPEG";
    }
}

Подробнее о реализации IHttpHandler в MSDN .

Вам необходимо передать идентификатор на страницу imagehandler.ashx, чтобы вы знали, какое изображение получить.

например:.

<img src="ImageHandler.ashx?id=<%=id%>" />

Поместите это вместо тега img или элемента управления изображениями ASP.NET.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...