Silverlight实现文件下载
首先在service层建一个Handler,内容如下:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.IO;
namespace test.Service
{
public class WebClientDownHandler : IHttpHandler
{
public void ProcessRequest(HttpContext context)
{
String fileName = context.Request.QueryString["filename"]; //客户端保存的文件名
String filePath = context.Server.MapPath("Pics/" + fileName); //路径
//string fileName = "ChartImg.png.jpg";
FileInfo fileInfo = new FileInfo(filePath);
if (fileInfo.Exists)
{
byte[] buffer = new byte[102400];
context.Response.Clear();
FileStream iStream = File.OpenRead(filePath);
long dataLengthToRead = iStream.Length; //获取下载的文件总大小
context.Response.ContentType = "application/octet-stream";
context.Response.AddHeader("Content-Disposition", "attachment; filename=" +
HttpUtility.UrlEncode(fileName, System.Text.Encoding.UTF8));
while (dataLengthToRead > 0 && context.Response.IsClientConnected)
{
int lengthRead = iStream.Read(buffer, 0, Convert.ToInt32(102400));//'读取的大小
context.Response.OutputStream.Write(buffer, 0, lengthRead);
context.Response.Flush();
dataLengthToRead = dataLengthToRead - lengthRead;
}
context.Response.Close();
context.Response.End();
}
}
public bool IsReusable
{
get
{
return false;
}
}
}
}
假如我们的service的Pics目录下有一个文件test.doc
我们可以试试http://localhost/WebClientDownHandler.ashx?filename=test.doc 看看能不能访问下载文件
如果成功了,在Silverlight页面直接给HyperlinkButton指定NavigateUri为上述url就可以了,注意可能需要给HyperlinkButton加上TargetName="_self"
Silverlight实现文件下载相关推荐
- Silverlight技术研讨(1):WebClient, 文件下载利器
对于小型的Silverlight应用程序,可以把所有内容,包括资源,都包含在一个Xap包中发布.对于开发者来说,是个很便利的选择,可以把更多的精力和时间用到程序的功能方面,提高开发效率.但是对于使用者 ...
- silverlight 文件下载若干方法
方法一:WebService 前台代码: < DataTemplate > < Button Content ="下载" Height ="23&quo ...
- EntityFramework+DomainDataSource+Silverlight完成数据读取分页排序与修改
关于EF.SL.DomainDataSource的说明园子上够多了,这儿就不多说了. 1.安装VS2010与Silverlight 4 Tools-- 2.打开VS2010,新键Silverlight ...
- 分享Silverlight/WPF/Windows Phone一周学习导读(10月30日-11月6日)
分享Silverlight/WPF/Windows Phone一周学习导读(10月30日-11月6日) 本周Silverlight学习资源更新 Silverlight 定位 niejunhua [学习 ...
- silverlight 类似百度的图片浏览器,视频播放,附件下载功能,全部后台程序。...
#region =========图片点击按钮================String[] nr = new String[7] { "房屋照片", "房屋所有权证& ...
- Silverlight获取WebHost配置信息--WebClient和XmlSerializer模拟
在我们的silverlight项目中,是被打包为xap zip文件下载到客户端,所以silverlight中的app配置文件我们不能直接修改,而在其宿主web host中的web.config在服务端 ...
- Silverlight 2.5D RPG游戏技巧与特效处理:(十六)动态资源
即开即玩是网页游戏相比传统客户端游戏的最大优势.如果说在每台电脑安装上G的客户端是一种资源浪费及时间污染:那么Silverlight作为RIA界的新宠儿,在继承祖辈优秀血统的前提下拥有更加卓越的性能及 ...
- Silverlight:Downloader的使用(event篇)
(1)Downloader的使用 首先我们看什么是Downloader,就是一个为描述Silverlight plug-in下载功能的集合.Downloader能异步的通过HTTP GET Reque ...
- 分享Silverlight/WPF/Windows Phone一周学习导读(06月06日-06月11日)
Windows 8预览版推出后,Silverlight社区掀起一番新的"Silverlight灭亡"讨论,由于Windows 8预览版中微软重点强调HTML 5和Javascrip ...
- ArcGIS API for Silverlight部署本地地图服务
ArcGIS API for Silverlight部署本地地图服务 首先介绍下我们的开发和部署环境: 部署环境: Windows 7 旗舰版32位操作系统 IIS 6.0 开发环境: Visual ...
最新文章
- 【转】MongoDB C# / .NET Driver 中IMongoQuery的内部实现Query的用法
- Matlab 二维绘图函数(plot类)
- 推荐一款好用的android反编译工具
- Fis3的前端工程化之路[三大特性篇之资源定位]
- halcon获取图像中心点_关于Halcon的复杂图形中心点查找
- NOIP2018普及T2暨洛谷P5016 龙虎斗
- linux驱动下载中心,Kvaser Linux驱动程序| Linux驱动程序和SDK开发包
- 【嵌入式】51单片机最小系统以及蜂鸣器驱动电路
- win10时间不准_简单几招教会你win10系统时间不准怎么解决
- 3D Photography using Context-aware Layered Depth Inpainting-论文主要内容翻译
- js+jQuery 打造我的快乐小农场
- shopex admincore.php,Shopex后台登录页面注入漏洞附利用POC
- eclipse、ddms、android studio连接不上手机问题解决
- 买水货必看!你必须知道的10件事情
- 交换机上网显示本地未连接服务器,本地连接提示受限制或无连接,处理思路?...
- 实时数据库管理系统技术要求
- 年轻人应不应该买房 如何买
- 对于预防降权有什么手段?
- Android如何判断系统是否已经被Root
- 【UOJ#311】【UNR #2】积劳成疾(动态规划)