仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 552|回复: 7
打印 上一主题 下一主题

[学习教程] ASP.NET网站制作之Silverlight 完成下载文件功效

[复制链接]
深爱那片海 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 22:20:35 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
不可能天天有学习.net),我一同学说,你应该早就有作品啦。我惶惶然……比来一向在做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.ckuyun.com/Handler/DownLoadFileHandler.ashx?FileName={1}" ,client.BaseAddress, fileaddressofneeded),UriKind.RelativeOrAbsolute);
            hlbutton.NavigateUri = u;
        }
  在页面大将你的hyperlinkbutton的属性设置为:_blank如许就是弹出另外一个界面了,以是如许一个复杂的下载就能够了,假如谁有新的举措大概好的办法能够拿出来,让人人参考一下!感谢!
实不相瞒,Java是我见过的执行效率最低的程序设计语言,前不久在CSDN论坛上有个评测,计算9999的阶乘,同样的循环算法,Java的耗时是.NET的5倍。
精灵巫婆 该用户已被删除
沙发
发表于 2015-1-19 09:06:23 | 只看该作者
我觉得什么语言,精通就好,你要做的就是比其他80%的人都厉害,你就能得到只有20%的人才能得到的高薪。
因胸联盟 该用户已被删除
板凳
发表于 2015-2-3 12:30:38 | 只看该作者
使用普通的文本编辑器编写,如记事本就可以完成。由脚本在服务器上而不是客户端运行,ASP所使用的脚本语言都在服务端上运行,用户端的浏览器不需要提供任何别的支持,这样大提高了用户与服务器之间的交互的速度。
蒙在股里 该用户已被删除
地板
发表于 2015-2-9 00:14:17 | 只看该作者
由于CGI程序每响应一个客户就会打开一个新的进程,所以,当有多个用户同时进行CGI请求的时候,服务器就会打开多个进程,这样就加重了服务器的负担,使服务器的执行效率变得越来越低下。
活着的死人 该用户已被删除
5#
发表于 2015-2-26 15:11:00 | 只看该作者
代码逻辑混乱,难于管理:由于ASP是脚本语言混合html编程,所以你很难看清代码的逻辑关系,并且随着程序的复杂性增加,使得代码的管理十分困难,甚至超出一个程序员所能达到的管理能力,从而造成出错或这样那样的问题。
不帅 该用户已被删除
6#
发表于 2015-3-8 15:49:13 | 只看该作者
弱类型造成潜在的出错可能:尽管弱数据类型的编程语言使用起来回方便一些,但相对于它所造成的出错几率是远远得不偿失的。
海妖 该用户已被删除
7#
发表于 2015-3-16 03:44:37 | 只看该作者
主流网站开发语言之CGI:CGI就是公共网关接口(CommonGatewayInterface)的缩写。它是最早被用来建立动态网站的后台技术。这种技术可以使用各种语言来编写后台程序,例如C,C++,Java,Pascal等。
小魔女 该用户已被删除
8#
发表于 2015-3-22 19:55:56 | 只看该作者
ASP是把代码交给VBScript解释器或Jscript解释器来解释,当然速度没有编译过的程序快了。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2025-1-10 06:17

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表