`
lu930124
  • 浏览: 28336 次
  • 性别: Icon_minigender_2
  • 来自: 廊坊
文章分类
社区版块
存档分类
最新评论

文件名浏览器兼容性(解决.net 文件名在IE和FireFox不兼容)

 
阅读更多

最近在做一个系统,系统中有一个功能就是用浏览器打印已经配置好的Word文档到本地,这个功能,其实挺简单的,也很好实现。当时我们是用FireFox做的测试,非常简单就实现了。打印效果如下:

在测试兼容性的时候,我们用IE测试出现了问题(其他浏览器基本上兼容),文档名称出现了乱码,如下图所示

出现问题之后,我查了一些资料,发现原来是IE浏览器与需要对中文名称进行编码,然后再显示,就可以了。我们的源代码如下:

 public void jianxigongzi(FileWagesViewModel enFileWages)
        {
            if (Session["userID"]==null) {
                 RedirectToAction("../Login/Login");
            }
            //获取模板的路径
            var path = Server.MapPath("../Document/1见习工资审批表.doc");
            #region 给见习工资审批表的各个参数赋值
            string strUserID = Session["userID"].ToString();
            //string strUserID = "001";//写死的测试
            while (strUserID.Length < 4)
            {
                strUserID = "0" + strUserID;
            }
            //获取信函编号
            string strCardNo = numberInfo.GetNumber();
            while (strCardNo.Length < 4)
            {
                strCardNo = "0" + strCardNo;
            }
            string basicInformationNumber = enFileWages.basicInformationNumber;
            //获取documentID参数
            string number = "LFRC" + strUserID + "No." + strCardNo;
            //给word中的表赋值
            string name = enFileWages.name;//姓名
            string sex = enFileWages.sex;//性别
            //调用B层获得出生日期
            //FileWagesViewModel resShow = fileWagesInfo.QueryBasicInfo(basicInformationNumber);          
            List<BasicInfoViewModel> ShowDetileInfores = resBasicres.ShowdetailBasicInfoLetter(basicInformationNumber).ToList();
            BasicInfoViewModel resShow = ShowDetileInfores.FirstOrDefault();
            string birthday = resShow.birthday == null ? "" : string.Format("{0:D}", Convert.ToDateTime(resShow.birthday));//出生年月
            //调用学历中的方法,获得其他的三个字段
            //获得学历表中的信息
            StudentStatusInfoViewModel enStudentInfo = queryStudentStatus.QueryDetailStudent(basicInformationNumber);
            string enter = enStudentInfo.entranceDate == null ? "" : string.Format("{0:D}", Convert.ToDateTime(enStudentInfo.entranceDate));//入学时间
            string graduate = enStudentInfo.graduationDate == null ? "" : string.Format("{0:D}", Convert.ToDateTime(enStudentInfo.graduationDate));//毕业时间
            string back = enStudentInfo.educationBackground;//学历

            string parttime = resShow.workingtime == null ? "" : string.Format("{0:D}", Convert.ToDateTime(resShow.workingtime)); //参加工作的时间
            string fileName = "见习工资审批表.doc";//这是文件名,如果不进行编码,直接放在这里,IE就会乱码
            string letterType = "见习工资审批表";
            string userId = Session["userID"].ToString();
            string letterNum = strCardNo;
            //获取模板中设定好的字段
            String[] fieldNames = new String[] { "number", "name", "sex", "enter", "graduate", "back", "birthday", "parttime" };
            //给模版中参数赋值
            Object[] fieldValues = new Object[] { number, name, sex, enter, graduate, back, birthday, parttime };
            Print(path, fileName, fieldNames, fieldValues);
            filterPrint.FilterPrint(basicInformationNumber, letterType, letterNum, userId);

            #endregion

        }
查到问题之后,我们进行了修改,在打印之前,先判断浏览器,如果是IE , 就对filename进行UTF-8的编码,然后再输出,如果不是,就直接输出,这样问题就解决了。修改代码如下:

string fileName=<span style="font-family: Arial, Helvetica, sans-serif;">"户号6665.doc"</span><span style="font-family: Arial, Helvetica, sans-serif;">;</span>
            string UserAgent = Request.ServerVariables["http_user_agent"].ToLower();
            if (UserAgent.IndexOf("firefox") == -1) //如果不是火狐浏览器
            {

                fileName = HttpUtility.UrlEncode(<span style="font-family: Arial, Helvetica, sans-serif;">fileName</span><span style="font-family: Arial, Helvetica, sans-serif;">, Encoding.UTF8);</span>
            }
如此一来,就达到了浏览器兼容。


分享到:
评论

相关推荐

    自由宿主Asp.net网站通用后台管理系统 v3.2.zip

    5. 兼容IE6 ,火狐浏览器等主流浏览器; 6. 对数据库表的操作,如增删改查操作只需要进行简单的设置即可完成,无需再进行任何编码实现。   自由宿主Asp.net网站通用后台管理系统3.2正式版更新功能: 1.修正edit...

    npdsplay.dll

    使用说明:粘贴在firefox的plugins目录下。 安装后重启火狐 地址栏输入 about:plugins 打开查看——若有了 {Microsoft? Windows Media Player Firefox Plugin 文件名: np-mswmp.dll np-mswmp} {audio/x-ms-...

    百姓房产中介系统 v5.6.rar

    3.重写了广告部分的代码,使所有广告形式都支持firefox浏览器。 4.其它细微的功能调整及浏览器兼容。 修改了如下问题 1.修正了新闻全部清空时不能正常显示的问题。 2.后台删除vip会员时失败的问题。 ...

    JS固定表头和左边列V2.0(源码)

    注:IE6/7/8锁定表头 由于兼容性问题,有些情况下会有一些错位的问题 1.5 增加了 显示/隐藏功能,修正了非IE浏览器下列宽错位问题 1.6 修正了当有合并单元格时,锁定单元格错位的问题,修正了表格行数较多时的...

    商用版本文本编辑器DotNetTextBoxV6.0.8Source 源码

    3)修正firefox下与jquery不兼容问题! 4)修正firefox下脚本的一些问题! 5)修正firefox3.0以上版本浏览控件界面显示不正确的问题! 2008/10/23 Version 5.0.8 For VS2005/2008 Updates: 1)增加了上传功能中重命名...

    老冀重量级小博客 v4.991

    并且完美兼容ie9,ie10,ie11,谷歌浏览器,搜狗浏览器,火狐浏览器,360浏览器6.优化内部代码,更加兼容搜索引擎,并且完美无漏洞7. 界面优化,虽然仍旧是丑的无法直视,但是比前几代强了不少8. 用到的核心代码:...

    KODExplorer 芒果云-资源管理器

    [关于兼容性] 建议使用chrome firefox ie9+ 体验更完整。ie8以下基本上不做兼容处理。chrome支持文件夹拖拽上传。 [文件打开] office文件在线预览功能,服务器必须在公网(外部能访问该服务器) [忘记密码] 修改data...

    AutoRename:AutoRename - 为 Chrome、Edge 和 Firefox 重命名 Internet 上的文件

    Microsoft Edge 和 Google Chrome 的自动重命名现在...兼容性此扩展主要针对 Microsoft Edge (Chromium) 和 Google Chrome 浏览器。 我不能保证支持其他基于Chromium的浏览器。错误报告或功能建议如果您有错误报告或想

    DotNetTextBox所见即所得编辑器控件 v3.3.1

    &lt;br&gt;2007/6/21 Version 3.1.2 beta &lt;br&gt;Updates: 1) 修正部分自动播放文件不兼容IE7的BUG。 2) 修正在检测自动播放文件格式时javascript代码出现的一些BUG。 2) 修正MenuConfig、configFolder...

    网站管理系统(PageAdmin) v3.0.20141010.rar

    3、样式和内容分离:系统主体框架div css结构,遵循国际最新W3C网页设计标准,兼容IE系列、火狐等主流浏览器,内容和样式分离让网站风格可以轻松修改和更换,而不会导致内容和结构的破坏。 4、周密的安全策略和...

    奥瑞文网络培训系统(免费版2.2.7)

    兼容IE6、IE7、IE8、IE9、360、FireFox、Chrome、Opera等所有浏览器。 产品应用: 奥瑞文oTraining网络培训系统是培训领域的终端平台,HR最信赖工具应用,教育、金融、政府、医疗等企事业单位提供整体化解决方案的...

    大名鼎鼎SWFUpload- Flash+JS 上传

     SWFUpload不同于其他基于Flash构建的上传工具,它有着优雅的代码设计,开发者可以利用XHTML、CSS和JavaScript来随心所欲的定制它在浏览器下的外观;它还提供了一组简明的JavaScript事件,借助它们开发者可以方便的...

    EPMG:Entropic密码管理器生成器是一个跨平台,最安全且无存储的密码管理器,可生成密码

    特性: 安全可移植性兼容性极简主义弹力通用性可否认性依存关系: Python-主离线引擎,兼容版本2和3 JavaScript-主要的在线引擎,Firefox或Chrome(无加载程序),可选的Edge(无剪贴板),IE不兼容局限性: 没有...

    580Web网站管理系统 v2.0.zip

    3、样式和内容分离:系统主体框架div css结构,遵循国际最新W3C网页设计标准,兼容IE系列、火狐等主流浏览器,内容和样式分离让网站风格可以轻松修改和更换,而不会导致内容和结构的破坏。 4、周密的安全策略和攻击...

    网新中英企业网站管理系统V2.2.rar

    温馨提示:“本程序以IE高版本内核开发,后台环境不支持IE9.0及以下版本,请使用IE10.0以上版本浏览器或兼容火狐、谷歌、猎豹等浏览器,推荐使用兼容火狐浏览器登录后台管理, 请勿使用aspweb、小旋风或NETBOX等IIS...

    淘客帝国破解版

    首页在火狐下变形不兼容修复。 分页代码部分模板出错修复。 不开启伪静态时,分页出错修复。 IE6下搜索容易出错的问题修复。 5.0公测版本 此次变动较大,需要公测一段时间,收集一些BUG进行完善。希望大家帮忙多...

    晨风音乐播放器cmp4 build 120212

    而flash具有很强的跨平台能力,基本支持所有PC操作系统(win/linux/mac)和浏览器(IE/FireFox/Chrome/Opera/Safari等),这样才能使你网站的播放器具有更广泛的兼容性。当前,flash已经是使用最多的网络媒体播放软件,...

    网页设计大赛(1).doc

    (二)参赛作品制作工具软件不限,但应考虑网页浏览的方便性和兼容性,以1024*768 为标准分辨率进行设计,适应IE 6.0以上和Firefox等浏览器浏览。页面上的中文使用简体字,不使用繁体字,且使用常 见的字体。 (三...

    全功能的地方视窗综合网站源代码

    完全兼容IE6/7/8/火狐等浏览器 搜索优化,完美植入 无论是页面结构、目录结构、文件名、网页标题,我们都充分植入了搜索引擎良性优化机制,为您的网站推广、搜索收录奠定了坚实的基础! 整合社区、完美互动 自主...

    网新中英多国语言CMS v9.0.rar

    温馨提示:本程序以IE高版本内核开发,后台环境不支持IE9.0及以下版本,请使用IE10.0以上版本浏览器或兼容火狐、谷歌、猎豹等浏览器,推荐使用兼容火狐浏览器登录后台管理,请勿使用aspweb、小旋风或NETBOX等IIS测试...

Global site tag (gtag.js) - Google Analytics