技術(shù)員聯(lián)盟提供win764位系統(tǒng)下載,win10,win7,xp,裝機(jī)純凈版,64位旗艦版,綠色軟件,免費(fèi)軟件下載基地!

當(dāng)前位置:主頁(yè) > 教程 > 軟件教程 > wps教程 >

WPS2013造成的HTML5 file.type值異常的解決方法

來(lái)源:技術(shù)員聯(lián)盟┆發(fā)布時(shí)間:2018-12-04 18:04┆點(diǎn)擊:

  處理代碼的兼容性是前端攻城師們的家常便飯了,一般是對(duì)各種瀏覽器進(jìn)行兼容性處理。但是有時(shí)候我們也會(huì)遭遇到瀏覽器以外的影響因素,這個(gè)是經(jīng)常會(huì)被忽視掉的內(nèi)容。比如前幾天就聽(tīng)說(shuō)客戶端安裝迅雷、暴風(fēng)影音等軟件會(huì)修改http連接數(shù),從而影響瀏覽器的http并發(fā)數(shù)。今天有幸,讓我見(jiàn)識(shí)了另一個(gè)因客戶端安裝個(gè)別軟件而造成的程序兼容問(wèn)題。罪魁禍?zhǔn)妆闶墙鹕絎PS2013.

  故事的開(kāi)始是這樣的。。。我用HTML5寫(xiě)了一個(gè)文件上傳插件,其中使用到了file API,在驗(yàn)證文件類型的時(shí)候使用了file.type獲取的文件MIME類型,如果獲取的值在允許列表中,就讓其通過(guò)驗(yàn)證。插件寫(xiě)完了,應(yīng)用到了項(xiàng)目中,提交測(cè)試了,一切都很順利。

  然后今天,一個(gè)測(cè)試MM卻來(lái)找我,說(shuō)文件上傳功能不好使,明明選擇了一個(gè)word文件,卻提示“文件類型不允許”。剛開(kāi)始我還不屑一顧,以為肯定是她的操作有問(wèn)題,但是當(dāng)我親手試了一遍后,發(fā)現(xiàn)確確實(shí)實(shí)是有問(wèn)題!一個(gè)普普通通的word文件而已,能有什么蹊蹺?于是我順著流程打印出來(lái)一些調(diào)試信息,發(fā)現(xiàn)了一個(gè)驚天大陰謀,在測(cè)試MM的機(jī)器上,獲取到的這個(gè)word文件的MIME類型竟然是application/kswps。并不是doc文件正常的application/msword,或是docx文件的application/vnd.openxmlformats-officedocument.wordprocessingml.document。遂詢問(wèn)妹子的機(jī)器是不是安裝了金山WPS,得到了肯定回答。從名字不難看出,文件的MIME類型被金山WPS給修改了(雖然給文件是用微軟office創(chuàng)建的)。有圖有真相:

WPS2013造成的HTML5 file.type值異常的解決方法   三聯(lián)

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

WPS2013造成的HTML5 file.type值異常的解決方法   三聯(lián)

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

  由于我的允許列表中沒(méi)有這樣的值,自然也就不能驗(yàn)證通過(guò)了。解決辦法用腳趾頭都能想出來(lái),把這個(gè)application/kswps也加到允許列表中不就OK啦~正當(dāng)我以為這就解決了問(wèn)題準(zhǔn)備卸載掉WPS時(shí),誰(shuí)知故事還沒(méi)有結(jié)束。。。請(qǐng)看我卸載掉WPS后獲取到的type值:

WPS2013造成的HTML5 file.type值異常的解決方法

  沒(méi)有了?沒(méi)有了!變成空了!尼瑪,金山你到底對(duì)我的電腦做了什么!拿不到type值了,那我還怎么驗(yàn)證。

  隨后,我修改了文件類型驗(yàn)證方式,通過(guò)后綴名來(lái)檢查,這樣就不會(huì)受到MIME類型不一致的干擾了。問(wèn)題雖然就此解決,但心中始終留有一絲對(duì)金山WPS的不解。另外,以上這種情況只出現(xiàn)在金山WPS目前的最新版9.1上,也就是WPS2013。我試著安裝了8.1版本,是沒(méi)有這個(gè)現(xiàn)象的。不知金山WPS是否會(huì)注意到此問(wèn)題。