2009年4月9日星期四

使用IHttpHandler下载文件

namespace IBA.ECommerce.WebParts.UserControls
{
// <system.web>
// <httpHandlers>
// <add verb="GET,POST" path="GetImage.ashx" type="IBA.ECommerce.WebParts.UserControls.GetImageHandler"/>
// </httpHandlers>

public class GetImageHandler : IHttpHandler
{
#region IHttpHandler Members

public bool IsReusable
{
get { return false; }
}

public void ProcessRequest(HttpContext context)
{
Guid dociId = new Guid(context.Request["docid"]);
Document doc = Document.Get<Document>(dociId);
if (doc != null)
{
context.Response.ClearHeaders();

FileInfo fileInfo = new FileInfo(doc.FullPath);

context.Response.AddHeader("Content-Disposition", "attachment; filename=" + doc.Path2);
context.Response.TransmitFile(doc.FullPath);

context.Response.End();
}
}

#endregion
}
}

3 条评论:

  1. 我觉得这个很有用,它可以修改输出的header,可以用于重定向。

    在Drupal中,可以使用这个来搞menu system.

    回复删除
  2. 是用.net还是用java搞,还是个问题。用.net会不会更easy些?

    回复删除
  3. 总之是要搞一个Drupal.net或Druva的。

    回复删除