Как отобразить изображения с сервера SQL на веб-странице в C #? - PullRequest
0 голосов
/ 13 декабря 2011

Как бы я мог отобразить изображения, хранящиеся в varbinary (max) на веб-странице? Я посмотрел вокруг, и многие люди рекомендуют использовать элемент управления сервером изображений, но отображаемые мной изображения имеют разное количество, поэтому я не уверен, как можно использовать этот элемент управления?

Мне также нужно иметь возможность изменить размер и проверить расширение.

Ответы [ 4 ]

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

Как правило, вы создаете страницу, которая будет напрямую записывать байты из вашей БД в поток ответов, а затем устанавливать тип содержимого ответа на соответствующий формат изображения. Пример:

Response.Write(myDbByteArray);
Response.ContentType = "image/png";
Response.End();

Тогда вы просто указали бы изображения (даже основные теги) на ваш URL:

<img src="Path/ToMyPage.aspx?imgId=1" alt="Some Image" />

Пока вы возвращаете правильный тип контента, не имеет значения, что источником тега изображения является страница aspx.

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

Tejs дают вам суть этого (то есть, записывают изображение в поток ответов), но это исключает интересные лакомые кусочки. В этой статье Загрузка и выгрузка изображений с SQL Server через ASP.Net MVC показывает, как передавать изображения на SQL Server и с него, используя эффективную семантику потоковой передачи без промежуточного файла. Вам следует избегать попадания изображения в byte[], как наивно предлагают большинство решений, потому что это приводит к огромному потреблению памяти и не масштабируется.

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

Здесь - это хорошая ссылка, которая должна помочь вам начать с того, чего вы пытаетесь достичь.

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

Я использую универсальный обработчик для изображений (ashx), и в этом обработчике я использую response.binarywrite

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