我是用Response.AddHeader和Response.BinaryWrite实现文件下载的,不知怎样才能让IE识别所下载的文件类型?

解决方案 »

  1.   

    我的下载代码。Response.AppendHeader("content-disposition", "attachment; filename="  + 
    System.IO.Path.GetFileName(ds.Tables[0].Rows[0]["FileUrl"].ToString()));
    Response.WriteFile(ds.Tables[0].Rows[0]["FileUrl"].ToString());
    Response.End();
      

  2.   

    最好分两个页面,一个页面接受参数
    if(!Page.IsPostBack)
    {
    string strFileName ="";
    strFileName = Request.QueryString["FILE_NAME"].ToString();
    strFileName = HttpUtility.UrlEncode(System.Text.Encoding.UTF8.GetBytes(strFileName));
    Response.Clear();
    Response.ContentType = "application/x-msexcel";
    Response.AddHeader("Content-Disposition", "inline; filename="+strFileName);
    System.IO.FileStream MyFileStream =new FileStream(Request.QueryString["REPORT_FILE"].ToString(),System.IO.FileMode.Open,System.IO.FileAccess.Read,System.IO.FileShare.Read);
    long FileSize = MyFileStream.Length;
    byte[] Buffer = new byte[(int)FileSize];
    MyFileStream.Read(Buffer, 0, (int)FileSize);
    MyFileStream.Close();
    Response.BinaryWrite(Buffer);
    }
    }
    catch(Exception exp)
    {
    Response.Write("导出数据错误!");
    }