Назад
Создание прибыльного бизнеспроекта на базе сайта

SEO + ASP.NET 4.0 + БИЗНЕСМОДЕЛЬ = ПРИБЫЛЬНЫЙ САЙТ

Инструмент быстрого построения прибыльного онлайн бизнеса своими силами без капиталовложений за 4 месяца все подробности на SEO + ASP.NET 4.0.

Подписка на рассылку

МАГИЯ C#!

Создание вебсайта с формой автоматического приема онлайн платежей по WebMoney!
Ваше имя
Ваш e-mail
Уроки по ASP.NET c# ADO.NET
     

18 видеоуроков
более 5 часов
по созданию сайта,
выполняющего
продажи ваших продуктов (физических/электронных) на полном автомате с личным оповещением на e-mail, а также ...
DVD-курс по C#, .NET

3 часть. Введение в ASP.NET. WebServices Профессиональная подготовка разработчика по языку C# на платформе .NET

asp.net webservices dvd c# gridview Гудок курс Более 65 подробных видео уроков по теоретическим основам технологии сайтостроения ASP.NET и процессу создания и использованию вебсервисов.

DVD-курс по C#, .NET

2А часть. XML/TXT в аспекте ADO.NET Профессиональная подготовка разработчика по языку C# на платформе .NET

xml txt dvd c# ADO ADO.NET Гудок курс 70 подробных видео уроков по работе с форматами xml, txt, по работе с файлами и директориями. Разработка высокоорганизованных свойств для значительного сокращения объема исходного кода и облегчения дальнейшей модификации и многое-многое другое...

DVD-курс по C#, .NET

1 часть. Windows Forms Профессиональная подготовка разработчика по языку C# на платформе .NET

Профессиональная подготовка на c# А. Гудок

185 подробнейших уроков (70 часов) лекций в формате видеоуроков по теории языка c# и платформы .NET. Практическое закрепление теоретического материала на примере создания Windows Forms - приложения видеоигры "Tanks"

DVD-курс по C#, .NET

2 часть. ADO.NET/SQL Профессиональная подготовка разработчика по языку C# на платформе .NET

Профессиональная подготовка на c# А. Гудок ADO.NET sql

165 подробных видео уроков по созданию приложений распределенных баз данных на примере разработки проектов с использований технологий ADO.NET (Connected model, Disconnected model, Typed DataSet, ...)


Я записываю курсы!
  Курс валют

НБУ курс евро






Динамическая генерация (автоматическое формирование) пути изображения с помощью хендлера .ashx



В прошлой статье мы поговорили о том, как использовать хендлер *.ashx для генерирования скрытого пути к файлу изображения, которое отображается у пользователя в браузере, но не доступно ему на прямую (а только в контексте страницы сайта).

Но код, реализующий данный задум в предыдущей статье немного не доработан в отношении гибкости.

Дело в том, что файл BackFile.ashx нацелен на отдачу конкретно одного графического файла. Это хорошо лишь в том случае, если мы хотим скрыть реальный путь к одному конкретному файлу. Но чаще требуется скрыть имена всех папок, содержащих графические файлы и не только их. Напомню, что в данной статье я показую работу хендлера ashx на примере изображений, но он прекрасно показывает себя и в других ситуациях.

Если мы хотим генерировать динамически любые изображения, находящиеся в папке IMAGES (к примеру),

Динамическая генерация изображения. Скрытие пути sahx asp.net c#

то предыдущий код следует переписать так:

public class Handler : IHttpHandler 
{ 
    public void ProcessRequest (HttpContext context) 
    {
        string fileName = "IMAGES/";
        
	    //если передан идентификатор файла
        if (context.Request.QueryString["im"] != null)
            fileName += "image" + 
              context.Request["im"].ToString() + ".jpg";
	    //иначе выводим «дежурное» изображение
        else
            fileName += "image1.jpg";
        
        Image img = Image.FromFile(
            context.Server.MapPath(fileName));
        MemoryStream memStream = new MemoryStream();
        img.Save(memStream, 
            System.Drawing.Imaging.ImageFormat.Jpeg);

        context.Response.ContentType = "image/jpeg";
        memStream.WriteTo(context.Response.OutputStream);
    }
 
    public bool IsReusable 
    {
        get 
	    {
            return false;
        }
    }
}

Ну а в разметке для любого динамически генерируемого изображения следует добавить параметр со значением идентификатора изображения (имя параметра и его значение вы сами можете выбрать и решить как будете из них «лепить» путь к графическому файлу):

<body>
    <form id="form2" runat="server">
    <div>
        
        <img id="Img1" runat="server" 
        src="~/BackFile.ashx?im=2" />
        
        <br />
        
        <asp:Image ID="Image1" runat="server" 
        ImageUrl="~/BackFile.ashx" />
        
    </div>
    </form>
</body>

Первое изображение создается с помощью параметра im=2. Это означает, что для него сгенерируется путь /IMAGESimage2.jpg. Второе изображение генерируется без параметра, а потому для него выводится путь по умолчанию. Конечно, привязавшись к любому DataSource, вы можете еще повысить гибкость вашей разметки, воспользовавшись следующей конструкцией:

<img runat="server" src="source.ashx?im=<%#ImageNumber%>" />

В итоге пользователь лишь увидит значение пути изображения ~/BackFile.ashx?im=2, что ровным счетом ему опять таки ни о чем не скажет.

скрытие пути изображения

Пользуйтесь.



Больше информации читайте по теме:



Оценить статью:

Оценивая статью, Вы подсказываете нам насколько данная информация стала полезной именно для Вас. Мы ожидаем, прежде всего, оценку доступности материала для понимания и простоты его изложения. Дополнительные комментари, вопросы, дополнения и замечания Вы можете указать на странице От Вас

Частичное, или полное копирование материала данной статьи возможно лишь при размещении ссылки на данную страницу.


            
        




Имя:  


Текст комментариев (не больше 600 знаков):  
введите не более 600 знаков



Введите символы с картинки:
Капча имеет "срок годности". Поэтому, если необходимо обновите страницу.



Сантехник срочно
c# курс Гудок   курс по ASP.NET Гудок   курс по ADO.NET Гудок   курс по XML txt Гудок   курс по рефлексии и многопоточности Гудок