ASP.NET保存文件到客户端

     /// <summary>
    
/// 文件下载
    
/// </summary>
    
/// <param name="filePath">文件物理地址</param>
    
/// <returns>void</returns>

     public   void  DownloadFile( string  filePath)
    
{
        
string saveFileName = System.IO.Path.GetFileName(filePath);
        DownloadFile(filePath, saveFileName);
    }

    
/// <summary>
    
/// 文件下载
    
/// </summary>
    
/// <param name="filePath">文件物理地址</param>
    
/// <param name="saveFileName">默认保存的文件名</param>
    
/// <returns>void</returns>

     public   void  DownloadFile( string  filePath,  string  saveFileName)
    
{
        
if (!System.IO.File.Exists(filePath))
        
{
            System.Web.HttpContext.Current.Response.Write(
"<script>window.alert('你所要下载的文件已经不存在!');</script>");
            
return;
        }

        
string contentType = "application/unknown";
        
try
        
{
            
string extension = System.IO.Path.GetExtension(filePath);
            Microsoft.Win32.RegistryKey classesRoot 
= Microsoft.Win32.Registry.ClassesRoot;
            Microsoft.Win32.RegistryKey extensionKey 
= classesRoot.OpenSubKey(extension);
            contentType 
= extensionKey.GetValue("Content Type").ToString();
        }

        
catch
        
{
        }

        System.Web.HttpContext.Current.Response.Clear();
        System.Web.HttpContext.Current.Response.Buffer 
= true;
        System.Web.HttpContext.Current.Response.ContentType 
= contentType;
        System.Web.HttpContext.Current.Response.ContentEncoding 
= System.Text.Encoding.UTF8;
        System.Web.HttpContext.Current.Response.AppendHeader(
"Content-Disposition""attachment;filename=" + HttpUtility.UrlPathEncode(saveFileName));
        System.Web.HttpContext.Current.Response.WriteFile(filePath);
        System.Web.HttpContext.Current.Response.Flush();
        System.Web.HttpContext.Current.Response.Clear();
        System.Web.HttpContext.Current.Response.Close();
        System.Web.HttpContext.Current.Response.End();
    }
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值