53 lines
1.6 KiB
Plaintext
53 lines
1.6 KiB
Plaintext
<%@ WebHandler Language="C#" Class="DownloadHandler" %>
|
|
|
|
using System;
|
|
using System.Web;
|
|
using System.Data;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
//using BizDataAccess;
|
|
using System.IO;
|
|
using System.Net;
|
|
using System.Web.Services;
|
|
using System.Text;
|
|
|
|
|
|
public class DownloadHandler : IHttpHandler
|
|
{
|
|
public void ProcessRequest(HttpContext context)
|
|
{
|
|
context.Response.ContentType = "text/plain";
|
|
string filePath = "../webpage/file";
|
|
filePath = HttpContext.Current.Server.MapPath(filePath);
|
|
string id = HttpContext.Current.Request["id"];
|
|
filePath = filePath + "/" + id;
|
|
string name = HttpContext.Current.Request["name"];
|
|
try
|
|
{
|
|
System.IO.FileStream fs = new System.IO.FileStream(filePath, System.IO.FileMode.Open);
|
|
byte[] bytes = new byte[(int)fs.Length];
|
|
fs.Read(bytes, 0, bytes.Length);
|
|
fs.Close();
|
|
HttpContext.Current.Response.ContentType = "application/octet-stream";
|
|
//HttpContext.Current.Response.ContentType = getContentType(extension);
|
|
//通知浏览器下载文件而不是打开
|
|
HttpContext.Current.Response.AddHeader("Content-Disposition", "attachment; filename=" + HttpUtility.UrlEncode(name, System.Text.Encoding.UTF8));
|
|
HttpContext.Current.Response.BinaryWrite(bytes);
|
|
HttpContext.Current.Response.Flush();
|
|
HttpContext.Current.Response.End();
|
|
return;
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
return;
|
|
}
|
|
}
|
|
public bool IsReusable
|
|
{
|
|
get
|
|
{
|
|
return false;
|
|
}
|
|
}
|
|
}
|