文件下载时的乱码问题?
ttyp 2004-10-14 02:58:05 文件下载时,提示时的文件名为乱码,保存时是正确的名字,打开时是Server.UrlEncode后的名字,看了很多帖子,都没解决
webconfig:
<globalization requestEncoding="gb2312" responseEncoding="gb2312" fileEncoding="gb2312"/>
code:
string destFileName = Request.QueryString["destFileName"]!=null?Request.QueryString["destFileName"]:""; //destFileName为Server.UrlEncode后的名称
destFileName = Server.MapPath(".")+destFileName;
destFileName = Server.UrlDecode(destFileName);
if(File.Exists(destFileName))
{
FileInfo file = new FileInfo(destFileName);
Response.Clear();
Response.ClearHeaders();
Response.Buffer = false;
Response.ContentEncoding=System.Text.Encoding.GetEncoding("gb2312");
Response.Charset = "gb2312";
Response.AppendHeader("Content-Disposition","attachment;filename=" + HttpUtility.UrlEncode(Path.GetFileName(destFileName),System.Text.Encoding.GetEncoding("gb2312") ));
Response.AppendHeader("Content-Length",file.Length.ToString());
Response.ContentType="application/octet-stream";
Response.WriteFile(destFileName);
Response.Flush();
Response.End();
}
else
{
Response.Write("<script langauge=javascript>alert('文件不存在!');history.go(-1);</script>");
Response.End();
}