在浏览器不能识别文件类型时它会提示下载,但它显示的下载的文件名是“show_file[1].aspx",而不是它本身的文件名?
显示文件的代码如下:public void write_file(string strid)
{

SqlConnection conn=new SqlConnection(strconn);
string strcmd="select convocation_part,convocation_part_type,convocation_part_name from bg_convocation where convocation_id=@strid";
SqlCommand cmd=new SqlCommand(strcmd,conn);
cmd.Parameters.Add("@strid",strid);
conn.Open ();
SqlDataReader dr=cmd.ExecuteReader();
if(dr.Read())
{
Response.AddFileDependency(dr["convocation_part_name"].ToString());
Response.AddFileDependency(dr["convocation_part_name"].ToString());
Response.ContentType=dr["convocation_part_type"].ToString();
Response.BinaryWrite((byte[])dr["convocation_part"]);

             
}
dr.Close();
conn.Close();
}盼解决。

解决方案 »

  1.   

    在发回浏览器的代码中加上Page.Response.AddHeader("Content-Disposition", "inline;filename=" + dr["convocation_part_name"].ToString());即可
    原码如下:
    public void write_file(string strid)
    {

    SqlConnection conn=new SqlConnection(strconn);
    string strcmd="select convocation_part,convocation_part_type,convocation_part_name from bg_convocation where convocation_id=@strid";
    SqlCommand cmd=new SqlCommand(strcmd,conn);
    cmd.Parameters.Add("@strid",strid);
    conn.Open ();
    SqlDataReader dr=cmd.ExecuteReader();
    if(dr.Read())
    {
    Page.Response.AddHeader("Content-Disposition", "inline;filename=" + dr["convocation_part_name"].ToString());
    Response.ContentType=dr["convocation_part_type"].ToString();
    Response.BinaryWrite((byte[])dr["convocation_part"]);

                 
    }
    dr.Close();
    conn.Close();
    }
      

  2.   

    1.加头:
      Page.Response.AddHeader("Content-Disposition", "inline;filename=" + dr    ["convocation_part_name"].ToString());
    2.文件名不要用中文,要用英文