|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
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倍。 |
|