Как показать изображения с помощью обработчика изображений в asp.net
Недавно я решил создать свои миниатюры, используя Image Handler. Я имею в виду, например, такой адрес:
<img src="Flower1.png?width=100&height=300"/>
Я погуглил это и не достиг результата. В большинстве уроков сказано, что я должен использовать такой адрес:
<img src="GetImage.ashx?file=~/Flower1.png&width=100&height=300"/>
Но я не хочу использовать этот адрес. И некоторые учебники, которые использовали мой желаемый способ, слишком стары, чтобы установить IIS. Спасибо за руководство.
2 ответа
Ваш вопрос довольно широкий, но в основном: под прикрытием вам понадобится обработчик asp.net, то есть файл GetImage.asxh, который будет обслуживать изображения - множество примеров, которые вы можете найти в Google, чтобы узнать, как сделайте это, и, как только у вас это заработает, вы можете настроить правила перенаправления IIS, которые будут отображать запросы, которые поступают как:
<img src="Flower1.png?width=100&height=300"/>
в
<img src="GetImage.ashx?file=~/Flower1.png&width=100&height=300"/>
Перенаправление правил стартера:
Пользователь / веб-сайт будет видеть изображения только с теми стандартными URL-адресами, которые вам нужны, но при этом будет выполнено перенаправление, и ваш обработчик может изменить размер изображений по мере необходимости по запросу.
Вы должны определить в файле web.config, что вы хотите, чтобы путь "Flower1.png" использовал конкретный обработчик. Например:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<system.web>
<httpHandlers>
<!-- ImageHandler handlers -->
<add verb="*" path="*Flower1.png"
type="skmHttpHandlers.ImageHandler, skmHttpHandlers" />
</httpHandlers>
</system.web>
</configuration>
Это установит, что для файла "*Flower1.png" вместо отправки самого файла будет запущен обработчик http.
Вы можете проверить эту страницу MSDN для более подробной информации.