文件下载
来源:互联网 发布:美工字体下载 编辑:程序博客网 时间:2024/04/30 01:26
/// <summary>
/// 下载
/// </summary>
/// <param name="DummyPath"></param>
/// <returns></returns>
public bool DownLoad(string DummyPath)
{
string sFileName = Path.GetFileName(Server.UrlDecode(DummyPath));
//string sFilePath = GetPhysicsPath() + "//" + sFileName;
string sFilePath = Server.MapPath(DummyPath);//zhangxy 获取相对路径
System.IO.FileInfo fileInfo = new System.IO.FileInfo(sFilePath);
if (fileInfo.Exists == true)
{
const long ChunkSize = 102400;//100K 每次读取文件,只读取100K,这样可以缓解服务器的压力
byte[] buffer = new byte[ChunkSize];
Response.Clear();
try
{
System.IO.FileStream iStream = System.IO.File.OpenRead(sFilePath);
long dataLengthToRead = iStream.Length;//获取下载的文件总大小
Response.ContentType = "application/octet-stream";
Response.AddHeader("Content-Disposition", "attachment; filename=" + HttpUtility.UrlEncode(sFileName));
while (dataLengthToRead > 0 && Response.IsClientConnected)
{
int lengthRead = iStream.Read(buffer, 0, Convert.ToInt32(ChunkSize));//读取的大小
Response.OutputStream.Write(buffer, 0, lengthRead);
Response.Flush();
dataLengthToRead = dataLengthToRead - lengthRead;
}
Response.Close();
}
catch (Exception err)
{
if (err.Message.StartsWith("文件") || err.Message.StartsWith("The process"))
{
Alert("此文件正在被使用,请稍候操作!");
}
else
{
DealException(err);
}
}
}
return fileInfo.Exists;
}
- 下载图片,下载文件
- 文件下载
- 文件下载
- 文件下载
- 文件下载
- 文件下载
- 文件下载
- 下载文件
- 文件下载
- 下载文件
- 文件下载
- 文件下载
- 下载文件
- 文件下载
- 下载文件
- 下载文件
- 文件下载
- 下载文件
- 我的C实践(3):用宏和位运算来实现整数集合
- Flex中如何将编译后的swf背景色设为透明
- concat 和 group_concat的陷阱(转)
- 生活
- 如何使用extern以及static
- 文件下载
- 非静态函数,非静态变量与静态函数,静态变量
- 滚动图标
- Go Home Tonight
- 释放内存
- MYSQL:GROUP_CONCAT,SUBSTRING_INDEX的妙用(转)
- extern 声明
- 让你在[三分钟自我介绍]中突出自我
- 库函数strstr的实现