在IHttpHandler中控制下载文件的类型和名称

public void ProcessRequest(HttpContext context)
{
    
string path = context.Request.QueryString["path"];
    
string name = context.Request.QueryString["name"];

    
if(path == null || path.Trim() == string.Empty)return;
    path 
= path.Trim();

    
if(name == null || name.Trim() == string.Empty)return;

    
if(Path.GetExtension(name).ToLower() != ".xls")
    
{
        name 
+= ".xls";
    }


    path 
= context.Request.ApplicationPath + "/Excel/" + path;

    
try
    
{
        context.Response.WriteFile(path, 
false);
        context.Response.ContentType 
= "application/vnd.ms-excel";
        context.Response.AddHeader(
"Content-disposition""inline; filename=" + name);
    }

    
catch(Exception ex)
    
{
        context.Response.Write(ex.Message);
    }

}

附:MIME类型
csv application/vnd.ms-excel
css text/css
js text/javascript
doc application/msword
gif image/gif
bmp image/bmp
htm text/html
html text/html
jpeg image/jpeg
jpg image/jpeg
pdf application/pdf
png image/png
ppt application/vnd.ms-powerpoint
rtf application/msword
txt text/plain
xls application/vnd.ms-excel
xml text/xml
wmv video/x-ms-wmv
wma video/x-ms-wmv
mpeg video/mpeg
mpg video/mpeg
mpa video/mpeg
mpe video/mpeg
mov video/quicktime
qt video/quicktime
avi video/x-msvideo
asf video/x-ms-asf
asr video/x-ms-asf
asx video/x-ms-asf
swf application/x-shockwave-flash
posted @ 2006-04-21 20:14  ahui  阅读(648)  评论(0编辑  收藏  举报