Silverlight实现文件下载

Silverlight实现文件下载,第1张

概述首先在service层建一个Handler,内容如下:   using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.IO; namespace test.Service {        public class WebClientDownHandler :

首先在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,Convert.ToInt32(102400));//'读取的大小

                    context.Response.OutputStream.Write(buffer,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实现文件下载所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1045961.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-24
下一篇 2022-05-24

发表评论

登录后才能评论

评论列表(0条)

保存