swfupload上傳在firefox報錯解決方案

來源:互聯網
上載者:User

在網上找到的:

 

在項目中要用到FLASH上傳,選擇了swfupload上傳組件。因為一些定製化需求,感覺這個東西做得挺不錯的。在IE下測試很正常,但項目組其他成員有的習慣了用FF,結果在FF上報 302 錯誤。

在網上搜尋了很多文章,有中文的,也有英文的,都說是session的問題,Firefox不儲存session,需要傳遞sessionID,說的很不清楚。其實在前台配置的時候也使用了params:{"jsessionid","<%=session.getId()%>"},感覺上是傳遞了SESSIONID的,仍然不行。再查了一下TOMCAT預設的是不是都取的JSESSIONID,在COOKIE裡面確實取到了這個值,但還是報同樣的錯誤。

一篇部落格中寫到:

       Firefox下使用swfupload不儲存session的確沒錯,但是如果你在這個上傳過程中不需要使用session的話,是不會產生影響的。比如我發現我出現這個錯誤的原因就是因為我做了一個登陸的驗證,對後台代碼都進行了一個驗證。因此去尋找了session中儲存的變數,結果因為Firefox在使用swfupload時,不儲存session。導致產生302錯誤。

      所以有這種情況的朋友,請仔細檢查你的代碼是否有過濾和攔截的情況,如果有這種情況,最好對swfupload的情況作一個特殊處理。

     事實也正是如此。在項目中的ACESSFILTER中進行了測試,發現FF中使用swfupload上傳時確實被重新導向到了我們指定的未登陸跳轉頁面。於是,將JSESSIONID作為URL參數,如果有該參數且等於當前SESSIONID,則不過濾該請求。OK,搞定。

 

總結三點:

1、在FF下,swfupload上傳請求過程中會session丟失(如果上傳請求一個Action,那麼在這個Action中你取不到任何值)。

2、如果項目代碼中有過濾和攔截,要對swfupload請求進行特殊處理。

3、在請求Action中想通過session取的值通過swfupload參數post_params手動傳過去。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.