分別在.net mvc 和java struts2中使用到 uploadify上傳 文件,遇到同樣的問題,選中文件上傳后,文件無法上傳,打上斷點后發現沒有進入后台。
逐步斷點發現 項目共同點是加入了 用戶身份驗證,都是基於cookie信息驗證。goole發現 在火狐內核瀏覽器中 uploadify的cookie信息是不會上傳到服務器的,
由於flash異步文件上傳啟動了新的線程,而兩種項目中都是使用 context(HttpContext 和ActionContext)都是基於線程內,即上下文,獲取cookie 。並且設置cookie屬於線程內獨享的。導致上傳時攔截器獲取不到cookie導致驗證失敗,無法上傳文件。
解決辦法:攔截器中排除上傳Action java
使用全局緩存作為驗證依據 全局線程共享 .net