天天看點

解決SWFUpload在Chrome、Firefox浏覽器下session找不到的問題

SWFUpload是一個非常不錯的異步上傳元件,但是在Chrome、Firefox等浏覽器下使用的時候會有問題。問題如下:為了防止跳過上傳頁面直 接向“接受SWFUpload上傳的一般處理程式”(假如是Upload.action)發送請求造成WebShell漏洞,我的系統中對于 Upload.action進行了權限控制,隻有登入使用者才能進行上傳。在IE下沒問題,但是在Firefox下運作報錯session為空。

經過搜尋得知:因為SWFUpload是靠Flash進行上傳的,Flash在IE下會把目前頁面的Cookie發到Upload.action,但是Firefox下則不會把目前頁面的Cookie發到Upload.action。因為判斷使用者session狀态是靠Cookie中儲存的SessionId實作的,這樣由于目前頁面的Cookie不會傳遞給Flash請求的Upload.action,是以請求的檔案發送到Upload.action就是一個新的Session了,當然這個Session就是空的。

解決方法:在上傳路徑中加上sessionid(從cookie中擷取sessionid後拼接到路徑的最後)[upload_url : "Upload.action;jsessionid="+JSESSIONID]

點選打開連結

繼續閱讀