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(); } 注:本示例加载时获取不到图片等文件的大小,显示时不精确。
发表评论
-
C/C++字符串使用军规
2012-07-06 09:51 1308C/C++字符串使用军规 本文对常见的C++ stri ... -
C#----初识正则表达式
2012-07-06 09:44 622正则表达式多用在验证输入有效性上。.NET有专门的类来使用 ... -
VBscript中的正则表达式
2012-07-06 09:37 730VBscript中的正则表达式 在VBscript中, ... -
3dmax导出插件-tiamo
2012-07-06 09:29 785学无止境,三人行 ... -
扩展FCKeditor,使其具有分页功能
2012-07-05 20:44 574扩展FCKeditor编辑器,使其具有分页功能。 先看 ... -
masm32开发com组件
2012-07-03 13:42 623标题: masm32开发com组件介绍[一][二][三] ... -
masm32开发com组件
2012-07-03 12:17 735标题: masm32开发com组件介绍[一][二][三] ... -
关于js插入页面元素问题 在js中创建html元素并在 引入js的地方直接显示
2012-07-02 10:14 1260最近开发网页,有许多组件需要js的方式引入 有个需求 ... -
深入SVG路径~~~在DEGRAFA中使用PATH
2012-07-02 10:14 807在W3SCHOOL的SVG教程 中 可以看出,SVG除了内 ... -
JAVA+fms
2012-07-02 10:14 801最近完成的 Java Flex Fms 视频聊天程序,虽然 ... -
3D 视频墙 3D IMAGE/MEDIA GRID/WALL GALLERY
2012-07-02 10:14 602If you are interested with th ... -
flashdevelop Build halted with errors (fcsh).
2012-07-02 09:42 809... -
flex 读取配置文件 与PHP交互 圆饼图
2012-07-01 09:34 475FLEX文件 teacherevalute.mxml ... -
在Flex控件中使用XMLListCollection
2012-07-01 09:34 467现在,应用程序已 ... -
Flex form 提交list数据表单
2012-07-01 09:34 982在Flex+J2EE开发中,采用动态脚本的方式提交一个li ... -
flex 界面改进
2012-07-01 09:34 509f 代码如下: HTT ... -
CiscoVPN Client Error 1720问题的解决方法
2012-06-30 17:52 1161CiscoVPN Client Error 1720问题 ... -
IE8不能正常登录网上银行的解决方法
2012-06-30 17:52 709一、关于IE8的"启用内存保护帮助减少联机攻击& ... -
英文Windows无法打开中文名CHM文件的解决方法
2012-06-30 17:52 761win2003英文版中,直接打开一个带中文名称的chm文件 ... -
Adobe flash cs5 的Java运行时环境初始化错误 完美解决方法
2012-06-30 17:52 709下载网络上的Adobe f ...
相关推荐
不过,针对 Java EE 开发的服务器端应用,可以通过集成 BlazeDS,充分利用 AMF 协议并能轻易与 Flex 前端交换数据,这种方式是 Java EE 应用程序集成 Flex 的首选。 BlazeDS 是 Adobe LifeCycle Data Services 的...
不过,针对 Java EE 开发的服务器端应用,可以通过集成 BlazeDS,充分利用 AMF 协议并能轻易与 Flex 前端交换数据,这种方式是 Java EE 应用程序集成 Flex 的首选。 BlazeDS 是 Adobe LifeCycle Data Services 的...
4.1.1在控制层中添加XML配置文件 4.1.2E4X解析标准.............................. 4.1.3控制层与E4X的整合................ 4.2对命令类的改进................................... 4.2.1将命令类改进为POJO类型......
在ActionScript中使用XML的示例:从Internet加载RSS数据 第章:使用本机JSON功能 JSONAPI概述 定义自定义JSON行为 第章:处理事件 事件处理基础知识 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快速...
使用.ashx文件处理IHttpHandler实现发送文本及二进制数据的方法 制作一个简单的多页Tab功能 一完美的关于请求的目录不存在而需要url重写的解决方案! 在C#中实现MSN消息框的功能 XmlHttp实现无刷新三联动ListBox 鼠标...
以常用的文件格式添加图标与图片。 从能够显示您将获得什么的控件面板中进行拖放操作。 属性编辑程序使您能将每个元素进行自定义。 元素的自动生成功能。 您能在任何地方放置任何元素。 Edge snapping能通过...
1.11 数据类型..................................................................................................29 2 入门指南...............................................................................
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 工作原理 ...
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 工作原理 ...