asp.net下载对话框 下载的文件名 IE正常 火狐乱码

Dispo 2009-09-25 12:51:00

string FileName = "测试使用(00测1试C).doc";

FullFileName = Server.MapPath(+FileName);
//FileName--要下载的文件名
FileInfo DownloadFile = new FileInfo(FullFileName);
if (DownloadFile.Exists)
{
Response.Clear();
Response.ClearHeaders();
Response.Buffer = false;
Response.ContentType = "application/octet-stream";
Response.AppendHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode(FileName, System.Text.Encoding.UTF8);
Response.AppendHeader("Content-Length", DownloadFile.Length.ToString());
Response.WriteFile(DownloadFile.FullName);
Response.Flush();
Response.End();
}
else
{
//文件不存在
}



弹出下载对话框后,IE下载文件是正常的,而Firefox下载的文件名则是一串乱码,不知道怎么解决,编码已经改为UTF8 了
...全文
666 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
Dispo 2009-09-25
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 sohighthesky 的回复:]
引用楼主 dispo 的回复:
HttpUtility.UrlEncode(FileName, System.Text.Encoding.UTF8
这里直接写fileName试试:
[/Quote]
直接写不可以,我试了 IE 是乱码
Teng_s2000 2009-09-25
  • 打赏
  • 举报
回复
指定编码应该就可以
Dispo 2009-09-25
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 wuyq11 的回复:]
string UserAgent = Request.ServerVariables["http_user_agent"].ToLower();
string FileName = "";
if(UserAgent.IndexOf("firefox") == -1)
    FileName = HttpUtility.UrlEncode(FileName, Encoding.UTF8);
Response.AppendHeader("content-type", "application/octet-stream");
Response.AppendHeader("Content-Disposition", "attachment;filename="+FileName);
Response.WriteFile(DownloadFile.FullName);
Response.Flush();
Response.End();

[/Quote]
可以问为什么这样设置吗? 我在之前那里写编码,IE并没有乱码啊,为什么改为只针对FireFox设置UTF8就可以了呢?
我已经按你说的弄好了,过会就结贴
wuyq11 2009-09-25
  • 打赏
  • 举报
回复

string UserAgent = Request.ServerVariables["http_user_agent"].ToLower();
string FileName = "";
if(UserAgent.IndexOf("firefox") == -1)
FileName = HttpUtility.UrlEncode(FileName, Encoding.UTF8);
Response.AppendHeader("content-type", "application/octet-stream");
Response.AppendHeader("Content-Disposition", "attachment;filename="+FileName);
Response.WriteFile(DownloadFile.FullName);
Response.Flush();
Response.End();
wx23990915 2009-09-25
  • 打赏
  • 举报
回复
下载前,先检测IE
sohighthesky 2009-09-25
  • 打赏
  • 举报
回复
[Quote=引用楼主 dispo 的回复:]
HttpUtility.UrlEncode(FileName, System.Text.Encoding.UTF8[/Quote]
这里直接写fileName试试:
shuli198869 2009-09-25
  • 打赏
  • 举报
回复
路徑

62,075

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧