使用ASP.NET怎么从服务器下载文件

  介绍

这篇文章给大家介绍使用ASP。净怎么从服务器下载文件,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

, public  void  DownloadFile (string 路径,string 名称){   ,尝试{   System.IO.FileInfo 才能;file =, new  System.IO.FileInfo(路径);   Response.Clear才能();   Response.Charset =,才能“GB2312";   时间=Response.ContentEncoding 才能;System.Text.Encoding.UTF8;//,才能添加头信息,为“文件下载/另存为“对话框指定默认文件名   Response.AddHeader才能(“Content-Disposition",,“附件;,文件名=?+,Server.UrlEncode(名字));//,才能添加头信息,指定文件大小,让浏览器能够显示下载进度   Response.AddHeader才能(“Content-Length",, file.Length.ToString ());//才能,指定返回的是一个不能被客户端读取的流,必须被下载   Response.ContentType =,才能“应用程序/ms-excel";//,才能把文件流发送到客户端   Response.WriteFile才能(file.FullName);//,才能停止页面的执行//Response.End才能(),,   HttpContext.Current.ApplicationInstance.CompleteRequest ();   ,}   ,catch  (Exception 特异){   Response.Write才能(“& lt; script>警报(& # 39;系统出现以下错误://n", +, ex.Message  +,“!//n请尽快与管理员联系# 39;公司)& lt;/script>“);   ,}   以前,}

这个函数是下载功能的组程序,其中路径是文件的绝对路径(包括文件名),名字是文件名,这个程序是能够运行的。其中如果将HttpContext.Current.ApplicationInstance.CompleteRequest();替换为Response.End ();就会出现一下错误:异常:由于代码已经过优化或者本机框架位于调用堆栈之上,无法计算表达式的值。但是这个错误不会影响程序的运行,虽然试试能够捕捉这个异常(不知道为什么)

在网上找了一些这个问题产生的原因:如果使用Response.End,响应。重定向或服务器。转移方法,将出现ThreadAbortException异常。您可以使用try - catch语句捕获此异常.Response。最后方法终止页的执行,并将此执行切换到应用程序的事件管线中Application_EndRequest事件。不执行反应。结束后面的代码行。此问题出现在的反应。重定向和服务器。转移方法中,因为这两种方法均在内部调用响应。结束。

<>强提供的解决方法有:

要解决此问题,请使用下列方法之一:

<强>对于响应。最后,调用HttpContext.Current.ApplicationInstance.CompleteRequest()方法而不是响应。最后以跳过Application_EndRequest事件的代码执行。

<强>对于响应。重定向,请使用重载响应。重定向(字符串url, bool endResponse),该重载对endResponse参数传递假以取消对响应。结束的内部调用。强例如:

Response.Redirect  (“nextpage.aspx",,假);   ,catch  (System.Threading.ThreadAbortException  e) {   ,扔;   ,}   ,接下来就可以通过其他函数或者事件调用这个函数来下载服务器上的文件了   ,protected  void  btnOutput_Click (object ,发送方,EventArgs  e) {   ,尝试{   string 才能;strPath =, Server.MapPath(“/?, +,“下载//学生基本信息模版.xls";   DownloadFile才能(strPath,“学生基本信息模版.xls");   ,}   ,catch  (Exception  exp) {   Response.Write才能(“& lt; script>警报(& # 39;系统出现以下错误://n", +, exp.Message  +,“!//n请尽快与管理员联系# 39;公司)& lt;/script>“);   ,}   ,}

关于使用ASP.NET怎么从服务器下载文件就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看的到。

使用ASP.NET怎么从服务器下载文件