ie6处理下载文件名过长问题的解决方案
浏览量:4309
CRM定制,软件开发,办公OA 易势科技是你的好伙伴
今天终于发现,使用gb2312编码Header就可以使文件名长度限制为75个中文字符,已经基本满足了需要。就其原理,这是微软的一个bug,header长度有限制,好像是158个字节,如果使用UTF-8编码文件名,超过18个中文字符的文件名就会超过限制,产生文件名乱码。但是使用gb2312编码,每个汉字2个直接,就可以使中文件名的限制扩展到75个
Response.Clear();
Response.ClearHeaders();
Response.ClearContent();
Response.Buffer = true;
Response.HeaderEncoding = Encoding.GetEncoding("gb2312"); //此处编码必须为gb2312,文件名最多可有75个汉字
Response.ContentType = "application/octet-stream";
Response.AddHeader("Content-Disposition", "attachment; filename=" + strFileFullName);
FileInfo objFileInfo = new FileInfo(Server.MapPath(strPath + "/" + strFileFullName));
Response.AddHeader("Content-Length", objFileInfo.Length);
Response.WriteFile(Server.MapPath(strPath + "/" + strFileFullName));
Response.Flush();
Response.End();
上一篇:.net中出现死循环或者无限递归
下一篇:SQL数据生成实体类