ASP.NET文件下载函数使用浅析
ASP.NET文件下载函数使用是什么情况呢?在你的Page_Load中添加这样的代码:
Page.Response.Clear();
bool success = ResponseFile(Page.Request, Page.Response, "目的文件名称", @"源文件路径", 1024000);
if (!success) Response.Write("下载文件出错!"); Page.Response.End();
ASP.NET文件下载函数代码为:
public static bool ResponseFile(HttpRequest _Request,HttpResponse _Response,string _fileName,string _fullPath, long _speed) {
try
{
FileStream myFile = new FileStream(_fullPath, FileMode.Open, FileAccess.Read, FileShare.ReadWrite);
BinaryReader br = new BinaryReader(myFile);
try
{
_Response.AddHeader("Accept-Ranges", "bytes"
);
_Response.Buffer = false;
long fileLength = myFile.Length;
long startBytes = 0; double pack = 10240;
//10K bytes
//int sleep = 200;
//每秒5次 即5*10K bytes每秒 int sleep = (int)Math.Floor(1000 * pack / _speed) + 1;
if (_Request.Headers["Range"] != null)
{
_Response.StatusCode = 206;
string[] range = _Request.Headers["Range"].Split(new char[] {'=', '-'});
startBytes = Convert.ToInt64(range[1]);
}
_Response.AddHeader("Content-Length", (fileLength - startBytes).ToString());
if (startBytes != 0) {
//Response.AddHeader("Content-Range", string.Format(" bytes {0}-{1}/{2}", startBytes, fileLength-1, fileLength));
}
_Response.AddHeader("Connection", "Keep-Alive");
_Response.ContentType = "application/octet-stream";
_Response.AddHeader("Content-Disposition","attachment; filename=" + HttpUtility.UrlEncode(_fileName,System.Text.Encoding.UTF8) ); br.BaseStream.Seek(startBytes, SeekOrigin.Begin);
int maxCount = (int) Math.Floor((fileLength - startBytes) / pack) + 1;
for (int i = 0; i < maxCount; i++) { if (_Response.IsClientConnected) { _Response.BinaryWrite(br.ReadBytes(int.Parse(pack.ToString()))); Thread.Sleep(sleep);
} else { i=maxCount;
}
} }
catch
{
return false;
}
finally
{
br.Close();
myFile.Close();
}
}
catch
{
return false;
}
return true;
}
这样就实现了文件下
相关文档:
在软件业里从程序员出身的,千万不要把你自己的本行丢掉。我说的本行是技术。虽然在中国,死钻研技术没有出路,话虽这么说,但技术出身的管理者,绝对牛于纯粹搞管理的纸上谈兵(当然排除余世维这样的人,牛叉叉的MBA博士)。博客园里有很多“程序员->架构师->管理者”的榜样。
最近很久没来园子里写博客了 ......
系统环境:
首先和机器硬件无关,这是Vista版的教程,只要你的机器能运行Vista,OK,效果一样.
Vista版本:Ultimate 也叫Vista旗舰版
系统状态:全新,已安装IIS
注意:Vista默认情况并未安装IIS,可以在控制面板里选安装IIS,这个如果有问题单独联系我,今天不讲它.
----------------------------------------------------- ......
此木马写了一段时间了,写出来觉得自己对.net有了更多的认识,当然主要是学习到了很多知识.所以个人感觉学习编程最好的途径就是带着项目去学习,配合百度,google去解决问题. 呵呵 排版比较丑陋,功能实用就好. 好了,现在发布此木马
1.登陆界面:
2. 主体界面
3. 各功能模块
百度下载地址: http://www.baidu.com/s? ......
使用 ASP.NET 按钮 Web 服务器控件可使用户能够将页发送到服务器并触发页上的事件。
一、背景
可使用 Button Web 服务器控件为用户提供向服务器发送页的能力。该控件会在服务器代码中触发一个事件,您可以处理该事件来响应回发。例如,用户可以指示已完成表单或希望执行特定的命令。
AS ......