IE8 下载excel,无法定义下载文件的格式和名称

land_L 2015-10-22 04:25:58
在别的浏览器都正常,代码如下:
                byte[] fileContents = Encoding.Default.GetBytes(ss.ToString());
return File(fileContents, "application/-excel", "ss.xls");

文件类型换过 "application/-excel",application/x-xls,application/ms-excel,application/vnd.ms-excel
然并卵

求问该如何配置?
...全文
593 18 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
land_L 2015-11-25
  • 打赏
  • 举报
回复
引用 16 楼 realsheng 的回复:
[quote=引用 15 楼 land_L 的回复:] [quote=引用 14 楼 realsheng 的回复:] 碰到同样的问题,未找到相应方法。 目测是http协议在IE8上没有正确的解析。。
用笨办法,先用npoi生成excel,再返回文件地址——虽然文件类型还是未知,但是保存下来是带上。xls的后缀了[/quote] 找到一个解决方法了。。把文件名传给File()函数前用URL编码一下。。。。。就行了。。如下: return File(phyname, "application/octet-stream", Server.UrlEncode(mf.FileName + "." + mf.Extension)); 你可以去看看在这么处理前后html文件头的区别就比较容易发现不同了。。。。IE8这坑的。。。[/quote] 按你说的方法好像不行哦..在非ie8浏览器下载的时候中文的文件名还是会显示成转码后的字符... 我去抓包看看Html文件流中的内容研究下吧,到是一种思路
糟糕喵 2015-11-12
  • 打赏
  • 举报
回复
#16 有个可能说得不对,应该是要看http协议包的文件头 具体要怎么说忘了。。。
糟糕喵 2015-11-09
  • 打赏
  • 举报
回复
引用 15 楼 land_L 的回复:
[quote=引用 14 楼 realsheng 的回复:] 碰到同样的问题,未找到相应方法。 目测是http协议在IE8上没有正确的解析。。
用笨办法,先用npoi生成excel,再返回文件地址——虽然文件类型还是未知,但是保存下来是带上。xls的后缀了[/quote] 找到一个解决方法了。。把文件名传给File()函数前用URL编码一下。。。。。就行了。。如下: return File(phyname, "application/octet-stream", Server.UrlEncode(mf.FileName + "." + mf.Extension)); 你可以去看看在这么处理前后html文件头的区别就比较容易发现不同了。。。。IE8这坑的。。。
land_L 2015-11-05
  • 打赏
  • 举报
回复
引用 14 楼 realsheng 的回复:
碰到同样的问题,未找到相应方法。 目测是http协议在IE8上没有正确的解析。。
用笨办法,先用npoi生成excel,再返回文件地址——虽然文件类型还是未知,但是保存下来是带上。xls的后缀了
糟糕喵 2015-11-04
  • 打赏
  • 举报
回复
碰到同样的问题,未找到相应方法。 目测是http协议在IE8上没有正确的解析。。
qbilbo 2015-10-27
  • 打赏
  • 举报
回复
引用 7 楼 land_L 的回复:
[quote=引用 6 楼 qbilbo 的回复:] 实在不行,就直接用"application/octet-stream"呗。 另外,你的fileContents怎么看也不象是一个Excel文件啊。
是自己写的类似table的excel文件,下载完后自己改文件类型能正常打开,但是如何去要求客户自己改文件类型。。。[/quote] 是csv?文件后缀名改成csv不就好了?
land_L 2015-10-27
  • 打赏
  • 举报
回复
引用 12 楼 Z65443344 的回复:
用NPOI导出excel并下载的例子
数据本身没有问题,请务必相信我在除了IE8的浏览器都测试过这样的写法是完全没有问题的 再个,文件格式的标识我都试过,"application/-excel",application/x-xls,application/ms-excel,application/vnd.ms-excel,全都试过,并没有作用 NPOI我也做过,在最后一步并没有区别...总之是返回给浏览器的文件流并没有被浏览器正确识别为对应文件的问题
於黾 2015-10-27
  • 打赏
  • 举报
回复
於黾 2015-10-27
  • 打赏
  • 举报
回复
byte[] fileContents = Encoding.Default.GetBytes(ss.ToString()); 这是啥玩意 把字符串转byte[]数组并且当做excel下载??? 一个字符串怎么看最多也就是个文本文档,而不可能是个excel文件啊
於黾 2015-10-27
  • 打赏
  • 举报
回复
application/-excel -> application/ms-excel
land_L 2015-10-27
  • 打赏
  • 举报
回复
引用 8 楼 qbilbo 的回复:
[quote=引用 7 楼 land_L 的回复:] [quote=引用 6 楼 qbilbo 的回复:] 实在不行,就直接用"application/octet-stream"呗。 另外,你的fileContents怎么看也不象是一个Excel文件啊。
是自己写的类似table的excel文件,下载完后自己改文件类型能正常打开,但是如何去要求客户自己改文件类型。。。[/quote] 是csv?文件后缀名改成csv不就好了?[/quote] 我需要返回一个excel文件,而且上面的写法在别的浏览器上都是可以正确返回的。 现在的问题是,不管我怎么改,返回到IE8上只显示未知文件格式的一个download文件
land_L 2015-10-26
  • 打赏
  • 举报
回复
引用 6 楼 qbilbo 的回复:
实在不行,就直接用"application/octet-stream"呗。 另外,你的fileContents怎么看也不象是一个Excel文件啊。
是自己写的类似table的excel文件,下载完后自己改文件类型能正常打开,但是如何去要求客户自己改文件类型。。。
qbilbo 2015-10-26
  • 打赏
  • 举报
回复
实在不行,就直接用"application/octet-stream"呗。 另外,你的fileContents怎么看也不象是一个Excel文件啊。
land_L 2015-10-26
  • 打赏
  • 举报
回复
难道这问题无解?
Poopaye 2015-10-23
  • 打赏
  • 举报
回复
我认为你的问题不是在代码上,你可以试试用无加载项的IE模式启动
land_L 2015-10-23
  • 打赏
  • 举报
回复
手动置顶一手
land_L 2015-10-22
  • 打赏
  • 举报
回复
引用 1 楼 shingoscar 的回复:
关键是你这个File是什么函数
        //
namespace System.Web.Mvc
        // 摘要: 
        //     Creates a FilePathResult object by using the file name, the content type,
        //     and the file download name.
        //
        // 参数: 
        //   fileName:
        //     The path of the file to send to the response.
        //
        //   contentType:
        //     The content type (MIME type).
        //
        //   fileDownloadName:
        //     The file name to use in the file-download dialog box that is displayed in
        //     the browser.
        //
        // 返回结果: 
        //     The file-stream result object.
        protected internal virtual FilePathResult File(string fileName, string contentType, string fileDownloadName);
Poopaye 2015-10-22
  • 打赏
  • 举报
回复
关键是你这个File是什么函数

111,094

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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