我用下面的代码下载文件System.Web.HttpContext.Current.Response.Clear();
System.IO.FileInfo file = new System.IO.FileInfo(strFileName); System.Web.HttpContext.Current.Response.ContentType = "application/octet-stream";
System.Web.HttpContext.Current.Response.AddHeader("Content-Disposition","attachment;FileName="+System.Web.HttpUtility.UrlEncode(file.Name,System.Text.Encoding.UTF8));
System.Web.HttpContext.Current.Response.AddHeader("Content-Length",file.Length.ToString());
System.Web.HttpContext.Current.Response.Write(file.FullName);
System.Web.HttpContext.Current.Response.Flush();网页上却把aspx的html代码输出来了没有出现文件下载的界面请问是什么问题啊

解决方案 »

  1.   

    strFileName 这是上传的文件你前台肯定要加<input id="upFile" type=file>
      

  2.   

    另外还有两个问题1.System.Web.HttpContext.Current.Response.AddHeader("Content-Length",file.Length.ToString());你写了文件长度,结果内容只写个了文件名(System.Web.HttpContext.Current.Response.Write(file.FullName);
    )
    ,这样会造成等待,因为下载的数据量没有达到长度.
    2.在最后面加一句,
    Response.End()
      

  3.   

    不要用Response的Write方法
    你可以使用WriteFile
    但是我也不建議使用WriteFile
    因為如果文件足夠大的話會有一個Bug
    Microsoft已經發布了一個Microsoft .NET Framework 1.1 sp1
    建議安裝上,因為好多bug都是這個引起的TransmitFile方法是Response的方法
    但是必須安裝sp1
    謝謝!
      

  4.   

    我問過的問題,
    http://blog.csdn.net/kaixin110/archive/2006/11/29/1419317.aspx