处理代码的兼容性是前端攻城师们的家常便饭了,一般是对各种浏览器进行兼容性处理。但是有时候我们也会遭遇到浏览器以外的影响因素,这个是经常会被忽视掉的内容。比如前几天就听说客户端安装迅雷、暴风影音等软件会修改http连接数,从而影响浏览器的http并发数。今天有幸,让我见识了另一个因客户端安装个别软件而造成的程序兼容问题。罪魁祸首便是金山WPS2013.

故事的开始是这样的。。。我用HTML5写了一个文件上传插件,其中使用到了file API,在验证文件类型的时候使用了file.type获取的文件MIME类型,如果获取的值在允许列表中,就让其通过验证。插件写完了,应用到了项目中,提交测试了,一切都很顺利。

然后今天,一个测试MM却来找我,说文件上传功能不好使,明明选择了一个word文件,却提示“文件类型不允许”。刚开始我还不屑一顾,以为肯定是她的操作有问题,但是当我亲手试了一遍后,发现确确实实是有问题!一个普普通通的word文件而已,能有什么蹊跷?于是我顺着流程打印出来一些调试信息,发现了一个惊天大阴谋,在测试MM的机器上,获取到的这个word文件的MIME类型竟然是application/kswps。并不是doc文件正常的application/msword,或是docx文件的application/vnd.openxmlformats-officedocument.wordprocessingml.document。遂询问妹子的机器是不是安装了金山WPS,得到了肯定回答。从名字不难看出,文件的MIME类型被金山WPS给修改了(虽然给文件是用微软office创建的)。有图有真相:

未安装WPS,获取到的doc和docx文件的type都是正常的

安装WPS2013后,doc和docx文件的type都变成了application/kswps

由于我的允许列表中没有这样的值,自然也就不能验证通过了。解决办法用脚趾头都能想出来,把这个application/kswps也加到允许列表中不就OK啦~正当我以为这就解决了问题准备卸载掉WPS时,谁知故事还没有结束。。。请看我卸载掉WPS后获取到的type值:

没有了?没有了!变成空了!尼玛,金山你到底对我的电脑做了什么!拿不到type值了,那我还怎么验证。

随后,我修改了文件类型验证方式,通过后缀名来检查,这样就不会受到MIME类型不一致的干扰了。问题虽然就此解决,但心中始终留有一丝对金山WPS的不解。另外,以上这种情况只出现在金山WPS目前的最新版9.1上,也就是WPS2013。我试着安装了8.1版本,是没有这个现象的。不知金山WPS是否会注意到此问题。

html5 file 兼容性,WPS2013造成的HTML5 file.type值异常的解决方法相关推荐

  1. 错误:Script file ‘D:\software_install\Anaconda_install\Scripts\pip-script.py‘ is not present.完美解决方法

    欢迎大家关注笔者,你的关注是我持续更博的最大动力 原创文章,转载告知,盗版必究 错误:Script file 'D:\software_install\Anaconda_install\Scripts ...

  2. 开机出现checking file system on C或者D E F盘符的解决方法

    http://kms.lenovots.com/kb/article.php?id=12616 开机出现checking file system on C或者D E F盘符的解决方法 出现这种情况一般 ...

  3. 安装金山WPS2013造成的HTML5 file.type值异常

    处理代码的兼容性是前端攻城师们的家常便饭了,一般是对各种浏览器进行兼容性处理.但是有时候我们也会遭遇到浏览器以外的影响因素,这个是经常会被忽视掉的内容.比如前几天就听说客户端安装迅雷.暴风影音等软件会 ...

  4. Failed to install USB inf file(VMware无法安装USB inf文件)原因与解决方法

    我遇到的问题环境:电脑自带的win10家庭版的系统,安装vm16.2.2报错Failed to install USB inf file.于是关掉防火墙,360,火绒等,重启再试还是一样 报错如下: ...

  5. android.view.inflateexception binary xml file line 异常的解决方法

    有时候一个很简单的xml布局文件,运行却抛出以下异常: 07-25 10:40:50.966: D/AndroidRuntime(31570): Shutting down VM 07-25 10:4 ...

  6. ie11不识别html5影片,IE11无法显示flash?IE11无法播放视频的解决方法

    ie11无法显示flash怎么办呢?ie11无法播放视频了,ie10也出现同样的问题,这该怎么办呢?下面小编就给你带来ie11无法显示flash解决方法. 方法一:关闭IE10/IE11的Active ...

  7. 电脑播放html5后死机,电脑打开暴风影音5会死机的解决方法|电脑打开暴风影音5会死机的原因...

    电脑已经成为我们生活很重要的一部分,不过人们在使用电脑时也会遇到很多的麻烦,比如死机.现在,就有小伙伴反映电脑打开暴风影音5就死机,这是怎么回事嗯?下面就由系统城小编跟大家分享一下解决方法吧,欢迎大家 ...

  8. html5 bad request,400 bad request的原因-400 bad request的解决方法-吾爱编程网

    我们的电脑在使用的过程中,相信很多的小伙伴在上面的时候都遇到过系统提示的:400 bad request的情况.接下来吾爱编程就为大家详细的介绍一下出现400 bad request的原因和解决方法, ...

  9. no input file specified解决方法

    场景描述 服务器上有一个项目啊,现要复制一份项目a部署域名为b,在部署复制的项目的时候,出现了no input file specified,如下图所示 问题所在 项目b目录权限不对 解决方法 把b项 ...

最新文章

  1. android 保存 用户名和密码 设置等应用信息优化
  2. AI K-means算法对数据进行聚类分析-实验报告
  3. js滚动页面到固定位置进行操作
  4. html学习文档-3、HTML元素
  5. tablepc是什么平板电脑_54位平板电脑充电柜长什么样?安和力
  6. python精要(72)-函数参数列表副本
  7. 专家谈个人用户保护自己网银安全
  8. 洛谷 - P1028 数的计算(线性dp)
  9. SD从零开始01-02
  10. .NET5实战千万并发,性能碾压各版本,云原生时代,.NET5为王!
  11. CentOS 7 安装 JDK
  12. Bootstrap3基础 clearfix pull-left/right 辅助类样式 快速左右浮动
  13. android wifi信号强度命令,Android显示wifi信号强度以及周边信号的代码
  14. 网站导航(站点地图)
  15. BrightHouse存储引擎
  16. EasyUI-基本框架
  17. 软件开发模型-螺旋模型
  18. 机器人仿真软件 V-REP学习记录(序言)
  19. DELL服务器bios文件编辑,BIOS维修网站www.biosrepair.com-DELL 1600SC服务器BIOS分离过程...
  20. 使用fsck命令检查文件系统错误

热门文章

  1. python写石头剪刀布的小游戏
  2. chkrootkit
  3. python图片怎么去掉颜色_Python 去除图片纯色边框(qbit)
  4. ThinkPHP整合支付宝担保交易
  5. python模拟支付宝扫码登录_GitHub - Jaccorot/alipay_python: 支付宝 alipay python接口,支持担保交易,即时到帐和自动发货接口...
  6. 如何在抖音找到好看的小姐姐
  7. 分分钟开发一个网站——Python Django快速教程
  8. 谷歌浏览器无法访问网站
  9. 计算机网络(三):网络核心
  10. 爬虫+Tkinter综合练习——个性签名设计器