解決了uploadify插件在chrom頻繁崩潰的問題,又遇到了新問題,ff浏覽器下報HTTP 302錯誤,
ff浏覽器下 uploadify 利用flash進行post上傳時沒有包含原來的session信息,而是重新創建了一個session,新的session無法通過登錄驗證,因此被重定向到了登錄頁面。
解決的方法無非就是將原session一起post到服務器端,然後服務器端登錄驗證之前將需要驗證的session改為post過來的那個。。。(語言組織能力太差—,—)。
jquery.uploadify初始化時添加:
代碼如下:
'formData' : { '<?php echo session_name();?>' : '<?php echo session_id();?>' },
服務器端由於項目使用的是zend框架,全部控制器都繼承Seed_Controller_Action4Admin,修改基類怕引起其他問題,因此沒有改基類,只改了應用控制器的init()方法
代碼如下:
public function init() {
$session_name = session_name();
if (!isset($_POST[$session_name])) {
} else {
session_id($_POST[$session_name]);
//uploadify官網有這一行,但我加入這行後報session已啟動錯誤
//去掉之後正常
//session_start();
}
}
這裡發現一個問題:所有上傳圖片的action應該放到一個控制器中的,開發的時候偷懶了,將上傳圖片的action跟其他呈現頁面的action放在了一起,init方法被覆蓋掉了,因此其他幾個action在訪問的時候不進行登錄驗證了。。。
雖然HTTP 302問題解決了,唉。。。還是不合理啊。
最終還是沒有完美解決此問題,小伙伴們如有更好的方法,請告知一下,本文持續更新。