Silverlight实现下载文件功能

最近一直在做Siverlight的有关的项目,今天做了一个下载功能,也是经过 网上找的各种办法才得到以下的结果,我来总结一下。如果哪有不对的或者哪块 有错误的还请各位进行指出来!谢谢!

在sl中的下载,我认为很难做到像c#中的下载。可以弹出一个对话框进行保 存或者另存为的样子。

下面是通过:WebClientDownHandler文件进行的!

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.IO;
namespace E9.Server
{
     /// <summary>
     /// Summary description for WebClientDownHandler
     /// </summary>
     public class WebClientDownHandler : IHttpHandler
     {
         public void ProcessRequest(HttpContext context)
         {
             String fileName =  context.Request.QueryString["fileName"]; //客户端保存的文件名
             fileName=HttpUtility.UrlDecode (fileName);
             String filePath =  context.Server.MapPath("data/" + fileName); //路径
             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;
             }
         }
     }
}

当我们新建玩这个类的时候,就可以在你点击下载的按钮那里写事件来调用 这个类进行下载文件!但是条件是你的文件是存在固定的一个文件夹中的.只有 找到路径才可以下载的。

               private void  HyperlinkButton_Click(object sender, RoutedEventArgs e)
         {
                        string  fileaddressofneeded = “1.txt”;//需要下载的文件名字
             HyperlinkButton hlbutton = sender as  HyperlinkButton;
             var client = new WebClient();
             var u= new Uri(String.Format ("{0}/http://www.cnblogs.com/Handler/DownLoadFileHandler.ashx? FileName={1}" ,client.BaseAddress,  fileaddressofneeded),UriKind.RelativeOrAbsolute);
             hlbutton.NavigateUri = u;
         }

在页面上将你的hyperlinkbutton 的属性设置为:_blank 这样就是弹出另一 个界面了,所以这样一个简单的下载就可以了,如果谁有新的办法或者好的方法 可以拿出来,让大家参考一下!谢谢!

时间: 2024-08-22 15:20:05

Silverlight实现下载文件功能的相关文章

Android实现下载文件功能的方法_Android

本文所述为Android实现下载文件功能的完整示例代码,对于学习和研究android编程相信会有一定的帮助,尤其是对Android初学者有一定的借鉴价值. 完整功能代码如下: package com.test; import java.io.File; import java.io.FileOutputStream; import java.io.InputStream; import java.net.URL; import java.net.URLConnection; import and

Android实现下载文件功能的方法

本文所述为Android实现下载文件功能的完整示例代码,对于学习和研究android编程相信会有一定的帮助,尤其是对Android初学者有一定的借鉴价值. 完整功能代码如下: package com.test; import java.io.File; import java.io.FileOutputStream; import java.io.InputStream; import java.net.URL; import java.net.URLConnection; import and

JSP点击链接后下载文件功能

  /** *//** * 实现文件另存功能 * * @param text * 文件内容 * @param fileName * 文件名称 * @return */ protected String renderFile(String text, String fileName) throws IOException { response.addHeader("Content-Disposition", "attachment; filename=" + file

WEB在模态窗体里导出或下载文件功能代码_实用技巧

复制代码 代码如下: <title>我的聊天记录</title> <base target="_self" /> <script src="../JS/jquery-1.4.2.min.js" type="text/javascript"></script> <script> $(document).ready(function() { $('a[href][href!=&q

MVC 中下载文件

问题描述 我想做个MVC中的下载文件功能,但是我的文件地址是http://222.110.23.3:3030/b.flv这种格式的,要是有FIleInfo这种流格式的话,会显示不支持URI格式,,网上提到用webclient方法,可是我用了,为什么会报保存的时候对本地路径拒绝访问的问题,请大家帮帮忙,谢谢啦. 解决方案 解决方案二:<ahref="http://222.110.23.3:3030/b.flv">下载</a> 解决方案三:引用1楼diaodiaop

JSP点击链接后下载文件(右键另存)功能

JSP点击链接后下载文件(右键另存)功能 /** *//**      * 实现文件另存功能      *      * @param text      *            文件内容      * @param fileName      *            文件名称      * @return      */     protected String renderFile(String text, String fileName)             throws IOEx

新版迅雷增加搜索下载任务及文件功能

正如迅雷7.9.10.4588优先体验版发布时所说的那样,新东西来了!其中特别有意思的是"下载速度排名"功能,我们动态采集不同带宽下的迅雷下载每个任务时的下载速度,并计算得出当前带宽的"雷友平均下载速度".该数字直观的反映了当前任务的资源丰富程度. 下载地址: http://down.sandai.net/thunder7/Thunder7.9.10.4610.exe 更新信息: 迅雷7.9.10.4610正式版(2013-10-09) ==============

Win8系统IE浏览器”下载管理器”功能出现故障无法下载文件怎么办

  具体方法如下: 1.确保当前计算机已正确并正常连接到网络; 2.使用磁盘清理工具.CCleaner 或浏览器内置的功能清理 IE 临时文件.Cookies 和历史记录等,并在清理完成后重启计算机; 3.设置新的下载文件存放路径看看是否可行; 4.尝试禁用下载管理器; 5.如果确定下载的文件是安全的,可以尝试禁用防火墙或杀毒软件; 6.确定浏览器允许进行下载; 7.如果通过以上方法都不能解决,建议安装第三方下载工具尝试下载.

安卓文件上传下载-我是安卓开发学了一点,大家可以给我讲讲如何写一个上传下载的功能

问题描述 我是安卓开发学了一点,大家可以给我讲讲如何写一个上传下载的功能 安卓我是0基础,现在我们老师命令我写一个文件上传下载,可是我只看了那么一点,大家可以给我讲讲思路,自己实际案例 解决方案 首先看看你们老师的要求是上传下载到哪里?然后再搜索方法案例,因为数据存储有多种方式都不一样的 解决方案二: http://download.csdn.net/detail/airlke/8172213