最近做公司官網的項目,其中有一個上傳證件照的功能,其實就是上傳圖片的功能,小萌是使用百度的一款插件WebUploader來做的,為什麼要用這個外掛呢?原因是:WebUploader是一個簡單的以HTML5為主,FLASH為輔的現代檔案上傳元件。在現代的瀏覽器裡面能充分發揮HTML5的優勢,同時又不摒棄主流IE瀏覽器,沿用原來的FLASH運行時,兼容IE6+,iOS 6+, android 4+。兩套運作時,同樣的呼叫方式,可供用戶任意選用。還有一點就是採用大檔案分片並發上傳,極大的提高了檔案上傳效率。基於這些優點,小萌選擇了這款插件。
對於webuploader的使用方法,那麼今天要介紹的是小萌在做官網專案的時候使用webuoploader遇到的幾個問題。
問題一:WebUploader 某些瀏覽器如chrome,點選上傳文件,選擇框會延遲幾秒才顯示,反應很慢
一開始遇到這個問題的時候,小萌以為是因為網速慢的原因,並沒有對此有過多的糾結,後來發現並不是,於是把測試地址丟給小呆,問在他那邊慢不慢,事實證明,真的不是網絡的問題,在webuploader的API中查了下,並沒有查到什麼,然後小呆在github中找到了一個解決辦法,在webuploader初始化的時候改變其中的一個參數:
accept: { title: 'Images', extensions: 'jpg,jpeg,png', mimeTypes: 'image/*' }
accept: { title: 'Images', extensions: 'jpg,jpeg,png', mimeTypes: 'image/jpg,image/jpeg,image/png' //修改位置 }
此方法有點簡單粗暴,看了之後才明白webuploader 如果定義*的話,會檢索所有格式,修改這個參數的原因是有選擇的掃描文件類型,只選擇掃描你設定的類型。小萌試了一下,修改之後確實不會再有延遲了,但是之前小萌初使用webuploader的時候並沒有這種情況的發生,而且webuploader官網上的DEMO也是不延遲的,有人解釋說是因為谷歌瀏覽器的更新,chrome 52.0.2743.80版本以上的版本都會出現延遲的情況,但是小萌不明白為啥官網的DEMO就不會有延遲呢。不過糾結這個問題是沒有太大意義的,我們旨在解決問題。那麼這個問題這樣修改下就OK了。
問題二:WebUploader Firefox瀏覽器點擊上傳檔案無反應
這個問題其實比問題一更為嚴重,反應慢就算了,我可以等等,但是根本就無反應就蒼了個天了,怎麼辦……喔怎麼辦……為什麼火狐你就是不能用,害得我你害得我在你面前呼吸急促想要卸載掉你……各種百度無果,又讓小呆幫忙我一起在github尋找解決方法,後來看到有個人說是有可能是因為上傳按鈕使用的是button的原因,建議修改為div。我修改了下,問題果然解決了,說是火狐對button按鈕支援的問題,所以才會出現這個情況,雖然不知道為啥會這樣,但是問題解決了就好。
問題三:WebUploader 部分低版本IE瀏覽器點擊上傳檔案無反應
對於IE這個問題,其實有些公司任性,不考慮IE相容的話,可以不用理會,這個是因為IE不支援html5上傳造成的,雖然說webuploader有「預設會先嘗試html5 是否支持,如果支援則使用html5, 否則則使用flash」這個功能,但是對於IE這種瀏覽器,有些問題你還真的沒辦法說出來個所以然,所以如果遇到此問題,可以將可以將runtimeOrder的值設為flash,來強制使用flash 運行。不過也不需要擔心設定預設為flash 運行上傳就會影響其速度,這點webuploader處理的還是很好的。
到這裡,這篇文章就結束了,不知道有木有朋友遇到跟我一樣的問題,小萌講此記錄下來,一個是用來提醒自己,一個是希望幫助到需要解決這些問題的小夥伴兒們。喜歡的給小萌點個喜歡哦,O(∩_∩)O謝謝
以上是使用webuoploader遇到的幾個問題的詳細內容。更多資訊請關注PHP中文網其他相關文章!