2013-06-18 4 views
1

У меня есть страница как часть моего веб-сайта IIS 7 (ASP.NET), который служит изображениям из базы данных. Он использует запрос для выбора изображения и соответствующим образом задает заголовок типа контента (image/jpeg), так что, например, image.aspx? ID = 1234 будет отображаться в браузере как jpeg-изображение.Обслуживание виртуальных файлов в IIS

Вместо этого я хочу предложить URI, сформированный таким образом, как image/1234.jpg, который даст тот же результат. Другими словами, на сервере с именем 1234.jpg нет фактического файла, это всего лишь содержимое записи базы данных, но с точки зрения браузера оно будет выглядеть так, как будто есть такой файл.

Я уверен, что это возможно, но я не могу понять, как это сделано, или где искать ответы. Я думаю, что это может быть сделано с фильтром ISAPI, но я не нашел доступный путь в документах, чтобы знать, является ли это даже правильной основой для решения.

ответ

0

Возможно, лучшим вариантом здесь будет реализовать правила перезаписи URL, который изменяет image/1234.jpg в image.aspx?ID=1234

Вы можете найти больше URL переписывания для IIS here.

Если по какой-либо причине переписывание URL-адресов не является для вас вариантом, то другим возможным методом может быть реализация пользовательской страницы 404. Когда ваш запрос к изображению/1234.jpg не приведет к реальному файлу, он окажется там.

Вы должны иметь возможность обнаруживать URI в этой точке и обслуживать изображение.

+0

URL rewrite обеспечивает точно результат, который я получил после. – Zenilogix

+0

После обработки URL-адреса для IIS я узнал, что я могу использовать Application_BeginRequest в global.asax, чтобы переписать тоже. Не как «дружественный», как плагин перезаписи, но имеет то преимущество, что он работает точно так же на сервере разработки, как и в IIS. – Zenilogix

Смежные вопросы