百度外掛程式webuploader的坑!

來源:互聯網
上載者:User

標籤:虛擬機器   類型   問題   name   過濾   move   整合   src   找不到   

 

前言:

自因為項目中需要使用上傳外掛程式,所以之前找了幾款上傳外掛程式。但是呢,小的上傳外掛程式是不支援我們項目上傳的(做虛擬機器項目的,一個鏡像可能好幾個G),所以呢這個外掛程式要支援分區上傳,拓展性要高(肯定的啦,不支援分區,玩命啊?)!

所以呢,我就找到了兩款外掛程式:

1. 百度的Webuploader

2. 國外的Plupload (這外掛程式真的好用,特此推薦,但是也有點小坑的地方。但相比百度的好一點,其實也是看實際需要!!!)

 

重點介紹坑的地方:

1.webuploader外掛程式在支援h5的瀏覽器上是使用h5上傳的,所以呢在你配置flash路徑的時候,即使路徑找不到,它特麼的也不會報錯(隱形的炸彈)!

所以,在不支援h5的瀏覽器下,該外掛程式會使用flash來上傳的啦!鄙人,目前的一個項目用的是vue.js,真的是好不容易整合進了webuploader!!!之前最早用plupload一直報undefined mox.js!哎,所以只能找百度的這個外掛程式了!

那下面呢,就來說下flash上傳的問題。首先說情境!我們的這個項目是最低支援ie9,於是捏,我們的測試就去測試了下ie9,一測試發現,根本無法選擇上傳檔案!

我聽聞之後,甚是驚訝,稟著程式員的思想:“我寫的代碼怎麼可能有問題?”,我就去調試了!一開始猜測是flash的一個坑!(下面會提到!!!),但是驗證之後發現不是的!

經過百度之後,反現了ie9是支援部分h5的,所以就猜測ie9 <都是使用flash上傳的!那行啊,為了驗證到底是不是flash的問題呢,我就在自己的代碼中增加了一行參數:

既然,支援強制使用flash,那好嘛!添上這參數之後,在chroem上運行,發現出現了ie9上的問題!這是我就已經確定是flash的問題,也行就是flash路徑的問題!然後呢,我就重新整理頁面,發現呢flash檔案一直都沒載入,這時候,我就更加坑定了!

但是,心裡也一直的罵這外掛程式,你說你為啥也不報錯呢?既然找到原因,那就解決好了!解決之後,後續發現最大的一個坑!

因為,我們這個項目提交之前,需要檔案的name base64加密一下,但是呢在其他的瀏覽器上發現都沒問題,但是唯獨在ie9上有問題,亂碼!!!心裡罵了ie一萬遍,其實最後發現不是ie的問題!

經過抓包發現,在flash上傳的時候,name沒有base64!!!

 

2.  removeFile()根本不是真正的移除,而是改變檔案的狀態!

這個大家應該都知道,用過的都說過這個問題!但是呢,都說有個QUENEN我就看文檔上有,就不知道怎麼用!有知道的大神,可以留言!

 順帶貼下。我是怎麼弄的一次上傳一個的!順帶再吐槽一點,這外掛程式支援多個的真的好,但是就不能支援一次只上傳一個嗎?有參數設定,其實呢?鳥用!!!

意會就行!!!輕噴!!!

 

3. 被隱藏的控制項,執行個體化不會成功!

這是我之前就知道的一個坑,所以我跨過去了!那是在2015的冬天,那時候我剛做php沒多久!!!哎,改這個Bug改的我真是天昏地暗,不知道咋回事!最後終於發現,特麼的是flash的問題!!!

據說,是flash的坑,然後就延伸到這個外掛程式上了!!!

 

4. 檔案選擇的時候,代碼有問題!

本人js算辣雞,多多少少看的懂它的意思,就改了下!經測試還是有效!

情境:

就是測試妹子,發了一個無尾碼的檔案來測試上傳的問題,結果發現可以被選中,然後上傳!然後妹子,果斷提出了BUG。。。

其實想吐槽,你特麼後台不判斷啊= =,後台不是PHP寫的,使用python那幫哥們寫的。。。但是呢,這的確是個BUG

可能會有人問,file控價不是可以定義上傳檔案尾碼咩?好的,我的回答是:為了相容性,chrome在52版本上會有一個大BUG,無視任何上傳外掛程式,

就是你定義了過濾的檔案類型,但是chrome在選擇檔案框彈出來的時候有8秒之多,,,所以,我們就又改了下源碼中的在file中增加自訂的尾碼的js,

統一在上傳部分增加一行,哪些可以上傳。。。。總之,就是用js做判斷!

 

百度外掛程式webuploader的坑!

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.