码迷,mamicode.com
首页 > 其他好文 > 详细

文件下载

时间:2016-09-08 18:16:57      阅读:127      评论:0      收藏:0      [点我收藏+]

标签:

 

界面 <a href="/Handler/FileDownLoadHandler.ashx?filePath=~\template\clientTemplate.xlsx" target="content">模板下载</a>

 

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Web;
using System.Web.SessionState;

namespace Web.Handler
{
/// <summary>
/// FileDownLoadHandler 的摘要说明
/// </summary>
public class FileDownLoadHandler : IHttpHandler, IRequiresSessionState
{
//目前只支持 excel 下载,后续可增加参数进行判断,以增加多种文件下载
public void ProcessRequest(HttpContext context)
{
if(context.Request.QueryString["filePath"]!=null)
{
string excelFile = HttpContext.Current.Server.MapPath(HttpContext.Current.Server.UrlDecode(context.Request.QueryString["filePath"].Trim()));
try {
FileInfo fi = new FileInfo(excelFile);//excelFile为文件在服务器上的地址
HttpResponse contextResponse = HttpContext.Current.Response;
contextResponse.Clear();
contextResponse.Buffer = true;
contextResponse.Charset = "UTF-8"; //设置了类型为中文防止乱码的出现
contextResponse.AppendHeader("Content-Disposition", String.Format("attachment;filename={0}", DateTime.Now.ToString("yyyyMMddHHmmss") + ".xlsx")); //定义输出文件和文件名
contextResponse.AppendHeader("Content-Length", fi.Length.ToString());
contextResponse.ContentEncoding = Encoding.Default;
contextResponse.ContentType = "application/ms-excel";//设置输出文件类型为excel文件。

contextResponse.WriteFile(fi.FullName);
contextResponse.Flush();
contextResponse.End();
}
catch (Exception ee) {
Log.Log4NetUtility.Error(this, ee.Message);
}
}
}

public bool IsReusable
{
get
{
return false;
}
}
}
}

文件下载

标签:

原文地址:http://www.cnblogs.com/zhang-wenbin/p/5853830.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!