(495) 925-0049, ITShop интернет-магазин 229-0436, Учебный Центр 925-0049
  Главная страница Карта сайта Контакты
Поиск
Вход
Регистрация
Рассылки сайта
 
 
 
 
 

Как отрендерить флэш (flash) из базы данных в ASP.NET

Источник: progblog

Допустим, у нас есть информация для вывода на нашем сайте, причём в формате flash. Задача: написать Handler для вывода флэш-обьектов из базы данных, причём должно работать во всех браузерах.

Решение в виде FlashHandler.ashx:

  1. <%@ WebHandler Language="C#" Class="flash_view" %>   
  2.   
  3. using System;   
  4. using System.Web;   
  5. using System.Linq;   
  6.   
  7. /// <summary>   
  8. /// Хэндлер показа флэш-объекта   
  9. /// </summary>   
  10. public class flash_view : IHttpHandler {   
  11.   
  12.     public void ProcessRequest(HttpContext context) {   
  13.         using (var dc = new SiteDataContext()) {   
  14.   
  15.             var item = dc.FlashObjects.First(i => i.FlashObjectId == Convert.ToInt32(context.Request.QueryString["FlashObjectId"]));   
  16.   
  17.             if (item.Content.Length == 0)   
  18.                 return;   
  19.   
  20.             context.Response.ContentType = "application/x-shockwave-flash";   
  21.                
  22.             context.Response.AddHeader("Accept-Ranges", "bytes");   
  23.   
  24.             using (System.IO.MemoryStream ms = new System.IO.MemoryStream(item.Content.ToArray()))   
  25.             {   
  26.                context.Response.BinaryWrite(ms.ToArray());   
  27.             }   
  28.             context.Response.End();   
  29.         }   
  30.     }   
  31.   
  32.     public bool IsReusable {   
  33.         get {   
  34.             return true;   
  35.         }   
  36.     }   
  37.   
  38. }  
<%@ WebHandler Language="C#" Class="flash_view" %>

using System;
using System.Web;
using System.Linq;

/// <summary>
/// Хэндлер показа флэш-объекта
/// </summary>
public class flash_view : IHttpHandler {

    public void ProcessRequest(HttpContext context) {
        using (var dc = new SiteDataContext()) {

            var item = dc.FlashObjects.First(i => i.FlashObjectId == Convert.ToInt32(context.Request.QueryString["FlashObjectId"]));

            if (item.Content.Length == 0)
                return;

            context.Response.ContentType = "application/x-shockwave-flash";
            
            context.Response.AddHeader("Accept-Ranges", "bytes");

            using (System.IO.MemoryStream ms = new System.IO.MemoryStream(item.Content.ToArray()))
            {
               context.Response.BinaryWrite(ms.ToArray());
            }
            context.Response.End();
        }
    }

    public bool IsReusable {
        get {
            return true;
        }
    }

}

Важно! Для того, чтобы данный хэндлер корректно отрабатывал в любимом браузере IE (6,7,8) необходимо в урл вписывать ".swf" - иначе он не понимает что в контенте флэш-объект :)

Удачного вам программирования, следующая статья будет о возможности контроля кликов по флэш объектам.

Ссылки по теме


 Распечатать »
 Правила публикации »
  Написать редактору 
 Рекомендовать » Дата публикации: 24.11.2009 
 

Магазин программного обеспечения   WWW.ITSHOP.RU
Microsoft Office 365 для Дома 32-bit/x64. 5 ПК/Mac + 5 Планшетов + 5 Телефонов. Подписка на 1 год.
Microsoft Office 365 Персональный 32-bit/x64. 1 ПК/MAC + 1 Планшет + 1 Телефон. Все языки. Подписка на 1 год.
Microsoft 365 Apps for business (corporate)
Microsoft 365 Business Basic (corporate)
Microsoft Office 365 Профессиональный Плюс. Подписка на 1 рабочее место на 1 год
 
Другие предложения...
 
Курсы обучения   WWW.ITSHOP.RU
 
Другие предложения...
 
Магазин сертификационных экзаменов   WWW.ITSHOP.RU
 
Другие предложения...
 
3D Принтеры | 3D Печать   WWW.ITSHOP.RU
 
Другие предложения...
 
Новости по теме
 
Рассылки Subscribe.ru
Информационные технологии: CASE, RAD, ERP, OLAP
Безопасность компьютерных сетей и защита информации
Новости ITShop.ru - ПО, книги, документация, курсы обучения
Программирование на Microsoft Access
CASE-технологии
Мастерская программиста
Новости мира 3D-ускорителей
 
Статьи по теме
 
Новинки каталога Download
 
Исходники
 
Документация
 
 



    
rambler's top100 Rambler's Top100