silverlight文件下载方法

silverlight来实现文件下载,纠结了很长的时间。一般的,如果是zip、rar等文件,直接通过NavigationService.Navigate(url);的形式即可,但是,如果是wav、MP3文件等,浏览器往往会直接打开应用程序进行播放(如Windows Media Player等),造成了很多的困惑。

网上搜索的解决方案,要么是通过silverlight客户端来下载,要么通过asp.net来下载,不一而足,各有优缺点。这里不评价各种优缺点,只记述了自己实现的结果。这里需要下载的文件是存放在服务器上的,并考虑到了虚拟目录的。一些动态生成的文件,也可以以此处理。

asp.net端的代码,短短的,没有几行:

		public void ProcessRequest(HttpContext context)
		{
			string filename = context.Request.QueryString["filename"];
			string physical_file_name = context.Server.MapPath(filename);

			FileInfo fi = new FileInfo(physical_file_name);
			//context.Response.Output.WriteLine("物理文件名:" + physical_file_name);

			context.Response.Clear();
			context.Response.ContentType = "application/octet-stream";
			//通知浏览器下载文件而不是打开
			context.Response.AddHeader("Content-Disposition", "attachment;  filename=" + fi.Name);
			context.Response.WriteFile(physical_file_name);
		}

silverlight端的处理:

NavigationService.Navigate(url);



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值