下载事件
//下载按钮事件
protected void lkb_downLoad_Click(object sender, EventArgs e)
{
//获取在隐藏控件的物理路径
string fullPath = hf_upPath.Value;
//获取包含在路径中的文件名
string fileName = fullPath.Substring(fullPath.LastIndexOf('\\')+1);
string extension = System.IO.Path.GetExtension(fullPath);
//文件操作
FileInfo file = new FileInfo(fullPath);
//清空缓存区的内容和HTTP头
Response.Clear();
Response.ClearContent();
Response.ClearHeaders();
//添加HTTP头
Response.AddHeader("Content-Disposition", "attachment;filename=" +fileName);
Response.AddHeader("Content-Length", file.Length.ToString());
Response.AddHeader("Content-Transfer-Encoding", "binary");
//由于有多种类型文件 判断选择对应的ContentType
switch (extension)
{
case ".docx":
case ".doc":
Response.ContentType = "application/msword";
break;
case ".jpg":
case ".jpeg":
Response.ContentType = "image/jpeg";
break;
case ".gif":
Response.ContentType = "image/gif";
break;
case ".txt":
Response.ContentType = "text/plain";
break;
case ".bmp":
Response.ContentType = "application/x-bmp";
break;
default:
Response.ContentType = "application/octet-stream";
break;
}
//设置响应输出content的内容的编码
Response.ContentEncoding = System.Text.Encoding.GetEncoding("gb2312");
//将文件写到输出流
Response.WriteFile(file.FullName);
//向客户端发送当前缓冲区的输出(内容必须大于256字节)
Response.Flush();
//使Web服务器停止处理脚本并返回当前结果
Response.End();
}