我想别人在我的WEB服务器上下载文件,下面是我的代码,不知那里错了?
private void Button2_Click(object sender, System.EventArgs e)
{ //下载文件的代码那里错了
string fileUrl=Request.Params["rdweb/db.txt"];
string fileName=MapPath(fileUrl);
FileInfo file=new FileInfo(fileName);
Response.Clear();
Response.AppendHeader("Content-Disposition","attachment;filename="+file.Name);
Response.AppendHeader("Content-Length",file.Length.ToString());//这行错了???
Response.ContentType="application/octet-stream";
Response.WriteFile(file.FullName);
Response.End();
}

解决方案 »

  1.   

    // 获取网页的内容
    static string GetPage(string url)
    {
      HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);
      try
      {
        using (HttpWebResponse res = (HttpWebResponse)req.GetResponse())
        {
          using (StreamReader sr = new StreamReader(res.GetResponseStream()))
          {
            return sr.ReadToEnd();
          }
        }
      }
      catch (System.Exception e)
      {
        return e.Message;
      }
      finally
      {
        req.Abort();
      }
    }
      

  2.   

    if(File.Exists(destFileName))//真实文件名 老兄在此断点跟踪一下
    {
    FileInfo fi = new FileInfo(destFileName);
    Response.Clear();
    Response.ClearHeaders();
    Response.Buffer = false;//与你程序不一样的第一个地方
    Response.AppendHeader("Content-Disposition","attachment;filename="+HttpUtility.UrlEncode(destFileName));
    Response.AppendHeader("Content-Length",fi.Length.ToString());
    Response.ContentType =dr["FileExt"].ToString();//文件类型 我的是从数据库中读的 你自己改改
    Response.WriteFile(destFileName);
    Response.Flush();//这是我和你程序不一样的第二个地方
    Response.End();}
    else
    {
    Response.Write("<script langauge=javascript>alert('文件不存在!');history.go(-1);</script>");
    Response.End();
    }