`
gupaohao
  • 浏览: 23427 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
最近访客 更多访客>>
社区版块
存档分类
最新评论

Flex加载文件数据流

 
阅读更多

  Flex加载文件数据流
  本文使用URLStream,URLRequest,Loader实现数据流的加载,文件可以是图片、SWF等。
  一、Flex代码              二、HttpService生成文件数据流代码  protected void Page_Load(object sender, EventArgs e) { string file = Request["file"]; if (string.IsNullOrEmpty(file)) return; string filepath = Server.MapPath("~/Download/" + file); if (File.Exists(filepath)) DownLoadStreamFile(filepath); Response.End(); } ///  /// 下载文件 ///  ///  ///  public static void ToDownload(string serverfilpath, string filename) { FileStream fileStream = new FileStream(serverfilpath, FileMode.Open); long fileSize = fileStream.Length; HttpContext.Current.Response.ContentType = "application/octet-stream"; HttpContext.Current.Response.AddHeader("Content-Di sposition", "attachment; filename=\"" + UTF_FileName(filename) + "\";"); ////attachment --- 作为附件下载 ////inline --- 在线打开 HttpContext.Current.Response.AddHeader("Content-Le ngth", fileSize.ToString()); byte[] fileBuffer = new byte[fileSize]; fileStream.Read(fileBuffer, 0, (int)fileSize); HttpContext.Current.Response.BinaryWrite(fileBuffe r); fileStream.Close(); HttpContext.Current.Response.End(); } ///  /// 打开文件 ///  ///  ///  public static void ToOpen(string serverfilpath, string filename) { FileStream fileStream = new FileStream(serverfilpath, FileMode.Open); long fileSize = fileStream.Length; HttpContext.Current.Response.ContentType = "application/octet-stream"; HttpContext.Current.Response.AddHeader("Content-Di sposition", "inline; filename=\"" + UTF_FileName(filename) + "\";"); HttpContext.Current.Response.AddHeader("Content-Le ngth", fileSize.ToString()); byte[] fileBuffer = new byte[fileSize]; fileStream.Read(fileBuffer, 0, (int)fileSize); HttpContext.Current.Response.BinaryWrite(fileBuffe r); fileStream.Close(); HttpContext.Current.Response.End(); } private static string UTF_FileName(string filename) { return HttpUtility.UrlEncode(filename, System.Text.Encoding.UTF8); } ///  /// 下载文件数据流 ///  ///  public static void DownLoadStreamFile(string serverfilpath) { int blocksize = 1024 * 100; byte[] buffer = new byte[blocksize]; byte[] fileHeader = new byte[101]; int startindex = 0; int bytesread = 0; int bytesfinish = 0; int filesize = 0; string headerText = string.Empty; BinaryReader bReader = null; bReader = new BinaryReader(File.OpenRead(serverfilpath)); filesize = Convert.ToInt32(bReader.BaseStream.Length); while (bytesfinish < filesize) { if (bytesfinish + blocksize < filesize) bytesread = bReader.Read(buffer, startindex, blocksize); else bytesread = bReader.Read(buffer, startindex, filesize - bytesfinish); bytesfinish += bytesread; HttpContext.Current.Response.OutputStream.Write(bu ffer, 0, bytesread); } bReader.Close(); HttpContext.Current.Response.End(); } 注:本示例加载时获取不到图片等文件的大小,显示时不精确。
分享到:
评论

相关推荐

    将 Flex 集成到 Java EE 应用程序的最佳实践(完整源代码)

    不过,针对 Java EE 开发的服务器端应用,可以通过集成 BlazeDS,充分利用 AMF 协议并能轻易与 Flex 前端交换数据,这种方式是 Java EE 应用程序集成 Flex 的首选。 BlazeDS 是 Adobe LifeCycle Data Services 的...

    +Flex+集成到+Java+EE+应用程序的最佳实践(完整源代码)

    不过,针对 Java EE 开发的服务器端应用,可以通过集成 BlazeDS,充分利用 AMF 协议并能轻易与 Flex 前端交换数据,这种方式是 Java EE 应用程序集成 Flex 的首选。 BlazeDS 是 Adobe LifeCycle Data Services 的...

    Cairngorm框架在Flex开发中的应用研究.nh

    4.1.1在控制层中添加XML配置文件 4.1.2E4X解析标准.............................. 4.1.3控制层与E4X的整合................ 4.2对命令类的改进................................... 4.2.1将命令类改进为POJO类型......

    ActionScript开发人员指南中文版

    在ActionScript中使用XML的示例:从Internet加载RSS数据 第章:使用本机JSON功能 JSONAPI概述 定义自定义JSON行为 第章:处理事件 事件处理基础知识 ActionScript事件处理与早期版本事件处理的不同之处 事件流 事件...

    ActionScript开发技术大全

    29.1.2添加窗体内容 600 29.1.3位置与尺寸 600 29.1.4窗口层叠控制 602 29.1.5本地窗口控制示例 602 29.2访问文件系统 612 29.2.1目录与文件引用 612 29.2.2目录与文件浏览 614 29.2.3目录与文件属性 615 29.2.4快速...

    asp.net知识库

    使用.ashx文件处理IHttpHandler实现发送文本及二进制数据的方法 制作一个简单的多页Tab功能 一完美的关于请求的目录不存在而需要url重写的解决方案! 在C#中实现MSN消息框的功能 XmlHttp实现无刷新三联动ListBox 鼠标...

    软件界面设计工具_3款合集

    以常用的文件格式添加图标与图片。 从能够显示您将获得什么的控件面板中进行拖放操作。 属性编辑程序使您能将每个元素进行自定义。 元素的自动生成功能。 您能在任何地方放置任何元素。 Edge snapping能通过...

    emWin5用户手册(中文)

    1.11 数据类型..................................................................................................29 2 入门指南...............................................................................

    Spring攻略(第二版 中文高清版).part2

    10.3 为应用添加Spring BlazeDS支持 406 10.3.1 问题 406 10.3.2 解决方案 406 10.3.3 工作原理 406 10.4 通过BlazeDS/Spring暴露服务 411 10.4.1 问题 411 10.4.2 解决方案 411 10.4.3 工作原理 ...

    Spring攻略(第二版 中文高清版).part1

    10.3 为应用添加Spring BlazeDS支持 406 10.3.1 问题 406 10.3.2 解决方案 406 10.3.3 工作原理 406 10.4 通过BlazeDS/Spring暴露服务 411 10.4.1 问题 411 10.4.2 解决方案 411 10.4.3 工作原理 ...

Global site tag (gtag.js) - Google Analytics