IE下载文件的问题,FF正常。
下载文件的代码如下,在另外的页面中文件名显示正常,证明上传得时候没问题。
string sql = "SELECT title,content FROM Documents WHERE doc_id = " + f_id; ;
SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["gitlConnectionString"].ConnectionString);
conn.Open();
SqlCommand cmd = new SqlCommand(sql, conn);
SqlDataReader reader = cmd.ExecuteReader();
if (reader.Read())
{
Response.Clear();
Response.Buffer = true;
Response.Charset = "UTF-8";
string fname = (string)reader[0];
Response.AppendHeader("Content-Disposition", "attachment;filename=" + fname);
Response.ContentEncoding = System.Text.Encoding.GetEncoding("UTF-8");
Response.ContentType = "application";
Page.EnableViewState = false;
Response.BinaryWrite((byte[])reader[1]);
//result = true;
}
reader.Close();
reader.Dispose();
cmd.Dispose();
conn.Close();
conn.Dispose();
在IE里面中文文件名就是乱码,在FF中就一切正常。难道是浏览器设置的问题?请专家解答。 --------------------编程问答-------------------- System.Web.HttpUtility.UrlEncode(FileNameWhenUserDownload, System.Text.Encoding.UTF8)
Response.AppendHeader("Content-Disposition", "attachment;filename=" System.Web.HttpUtility.UrlEncode(fname, System.Text.Encoding.UTF8));
--------------------编程问答-------------------- 在你的代码里,只是对内容编码,没有对附加头文件名编码. --------------------编程问答-------------------- 把这一行改改 :Response.ContentType = "application";
--------------------编程问答-------------------- http://blog.csdn.net/goody9807/articles/138871.aspx
这里应该就是你的问题 --------------------编程问答-------------------- 需要进行编码,
用UTF8编码试一下
FileName = String.Format("attachment; FileName={0}", HttpUtility.UrlEncode(strFileName,System.Text.Encoding.UTF8));
Response.ContentEncoding = System.Text.Encoding.UTF8;
Response.AppendHeader("Content-Disposition", FileName, Encoding.UTF8))
--------------------编程问答-------------------- 楼上的方法不行了,出来的文件名是%XX%XX,根本就是URL,哪里是什么汉字阿。 --------------------编程问答--------------------
//判断下是不是ff,如果不是则编码,不是则不需要--------------------编程问答-------------------- ???????????????两种浏览器的默认制式不同??
string UserAgent = Request.ServerVariables["http_user_agent"].ToLower();
string fname = (string)reader[0];
if(UserAgent.IndexOf("firefox") == -1)//不是ff时
fname = HttpUtility.UrlEncode(fname, Encoding.UTF8);//utf8编码中文
Response.AppendHeader("Content-Disposition", "attachment;filename=" + fname);
补充:.NET技术 , ASP.NET