ASP.NET网站制作之Silverlight 完成下载文件功能
不可能天天有学习.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;
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倍。 我觉得什么语言,精通就好,你要做的就是比其他80%的人都厉害,你就能得到只有20%的人才能得到的高薪。 使用普通的文本编辑器编写,如记事本就可以完成。由脚本在服务器上而不是客户端运行,ASP所使用的脚本语言都在服务端上运行,用户端的浏览器不需要提供任何别的支持,这样大提高了用户与服务器之间的交互的速度。 由于CGI程序每响应一个客户就会打开一个新的进程,所以,当有多个用户同时进行CGI请求的时候,服务器就会打开多个进程,这样就加重了服务器的负担,使服务器的执行效率变得越来越低下。 代码逻辑混乱,难于管理:由于ASP是脚本语言混合html编程,所以你很难看清代码的逻辑关系,并且随着程序的复杂性增加,使得代码的管理十分困难,甚至超出一个程序员所能达到的管理能力,从而造成出错或这样那样的问题。 弱类型造成潜在的出错可能:尽管弱数据类型的编程语言使用起来回方便一些,但相对于它所造成的出错几率是远远得不偿失的。 主流网站开发语言之CGI:CGI就是公共网关接口(CommonGatewayInterface)的缩写。它是最早被用来建立动态网站的后台技术。这种技术可以使用各种语言来编写后台程序,例如C,C++,Java,Pascal等。 ASP是把代码交给VBScript解释器或Jscript解释器来解释,当然速度没有编译过的程序快了。
页:
[1]