麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁(yè) > 開發(fā) > PHP > 正文

解決ThinkPHP下使用上傳插件Uploadify瀏覽器firefox報(bào)302錯(cuò)誤的方法

2024-05-04 23:41:05
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友
這篇文章主要介紹了解決ThinkPHP下使用上傳插件Uploadify瀏覽器firefox報(bào)302錯(cuò)誤的方法,需要的朋友可以參考下
 

最近用ThinkPHP開發(fā)一個(gè)項(xiàng)目,集成了批量上傳文件插件Uploadify,在谷歌Chrome和IE下都能正常上傳,只有火狐下提示這個(gè)錯(cuò)誤,網(wǎng)上找了很多解決辦法,基本都說(shuō)flash在firefox下重新發(fā)起session會(huì)話,由于session沒(méi)有驗(yàn)證通過(guò)所以報(bào)錯(cuò),這個(gè)問(wèn)題網(wǎng)上有很多解決方案,但是試了很多,都沒(méi)有真正解決我的問(wèn)題,最后看了官方的解決方案
http://www.uploadify.com/documentation/uploadify/using-sessions-with-uploadify/
才真正解決,我用的是ThinkPHP框架,同時(shí)我開啟了_initialize()(不知道這個(gè)函數(shù)的去看下ThinkPHP幫助手冊(cè)),在這個(gè)函數(shù)里,我執(zhí)行了一個(gè)檢測(cè)用戶是否登陸的驗(yàn)證函數(shù),這樣每次訪問(wèn)控制器,都會(huì)執(zhí)行驗(yàn)證用戶是否登陸有權(quán)限執(zhí)行相應(yīng)操作,但是因?yàn)樵诨鸷校琭lash發(fā)起的請(qǐng)求并沒(méi)有連同SESSIONID一同發(fā)送到ThinkPHP控制器,所以導(dǎo)致了無(wú)法通過(guò)用戶登陸請(qǐng)求,這時(shí)我們可以在uploadify的formData參數(shù)中定義一個(gè)SESSIONID,這樣就可以通過(guò)$_POST或$_GET的方法將SESSIONID發(fā)送到控制器,在控制器把傳遞過(guò)去的SESSIONID設(shè)置為當(dāng)前會(huì)話的SESSIONID,這樣就可以通過(guò)驗(yàn)證了,但是,這里需要注意一條,重新設(shè)置SESSIONID必須要放在執(zhí)行驗(yàn)證登陸函數(shù)的前邊,否則無(wú)效,因?yàn)槿绻顷戲?yàn)證不通過(guò),那么后邊的代碼就都不會(huì)執(zhí)行了,我之前就犯了這樣的錯(cuò)誤,將重置SESSION放到了上傳文件處理的函數(shù)中,下面貼上詳細(xì)的代碼,以供大家參考:

客戶端(ThinkPHP上傳文件模板)代碼

$(function() {   $('#file_upload').uploadify({    'formData' : {     '<{:session_name()}>': '<{:session_id()}>',//此處獲取SESSIONID     'timestamp': '<{$timestamp}>',     'token' : '<{$token}>'    }     //后邊對(duì)于解決本問(wèn)題無(wú)關(guān)代碼省略。。。    })}

服務(wù)器端(ThinkPHP控制器)代碼

//初始化執(zhí)行 publicfunction _initialize(){  //此處為解決Uploadify在火狐下出現(xiàn)http 302錯(cuò)誤 重新設(shè)置SESSION  $session_name= session_name();  if(isset($_POST[$session_name])) {   session_id($_POST[$session_name]);   session_start();  }   //執(zhí)行登陸驗(yàn)證檢測(cè)函數(shù)  $this->powerverify();   }

為大家分享了我自己親身實(shí)例之外,還在網(wǎng)上找到了其他朋友的實(shí)例進(jìn)行了整理,希望對(duì)大家的學(xué)習(xí)有所啟發(fā)。

標(biāo)題:PHP Uploadify 火狐下報(bào) 302錯(cuò)誤
大概原因:在Uploadify官網(wǎng)已經(jīng)說(shuō)明,是說(shuō)Flash有一個(gè)Bug它提交請(qǐng)求的時(shí)候不會(huì)自動(dòng)帶session,所以瀏覽器判斷沒(méi)有獲取到session值,我用的ThinkPHP框架,_initialize(){}(在執(zhí)行其他方法前會(huì)先執(zhí)行這個(gè)函數(shù),我用它來(lái)判斷用戶是否登錄),在這個(gè)函數(shù)中,我照網(wǎng)上的方法:
基本思路:根據(jù)Flash這個(gè)bug的原理來(lái)做的,就是我們把session值作為一個(gè)參數(shù)一起上傳.
Uploadify官網(wǎng)也說(shuō)了解決之道:給一個(gè)選項(xiàng)
formData: {‘SESSION NAME':'SESSIOIN ID'}----------------json格式
我用隱藏域把這些變量保存在模板中(值可以得到),然后在js文件中我直接寫作:

var session_name = (使用Jquery通過(guò)選擇器獲取得到值)var session_id = (同上);formData: {session_name, session_id},

其他解決思路:
這個(gè)問(wèn)題確實(shí)存在,其實(shí)這個(gè)問(wèn)題可以轉(zhuǎn)化為session丟失。雖然您針對(duì)session進(jìn)行了特殊處理,作為參數(shù)傳入,但是不代表您服務(wù)端正確獲取,建議您進(jìn)入debug模式跟蹤一下服務(wù)器端是否正確獲取參數(shù),并順利加載session。另外還有個(gè)問(wèn)題,如果您當(dāng)前打開url與您提交form的url是一樣的,還得記得加上隨機(jī)數(shù)。

以上就是針對(duì)ThinkPHP下使用Uploadify插件火狐上傳報(bào)302錯(cuò)誤的解決方法,希望對(duì)大家的學(xué)習(xí)有所幫助。



注:相關(guān)教程知識(shí)閱讀請(qǐng)移步到PHP教程頻道。
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 日韩视频―中文字幕 | 精品中文视频 | 久久精品超碰 | 56av国产精品久久久久久久 | 羞羞的视频在线免费观看 | 国产精品视频一区二区三区综合 | 玖草在线资源 | 国产精品aⅴ | 欧美黄色看 | 一级毛片在线免费观看视频 | 欧美性色黄大片www 成人免费网站在线观看 | 31freehdxxxx欧美 | 国产一级αv片免费观看 | 免费欧美精品 | 黄a大片 | 精品久久久久久久久久久aⅴ | 久久精品亚洲欧美日韩精品中文字幕 | 日韩视频www | 色婷婷av一区二区三区久久 | 久久久久国产精品久久久久 | 国产精品性夜天天视频 | 亚洲一区二区国产 | 亚洲一区在线免费视频 | www.guochanav.com| 久久精品视频69 | 日本不卡一二三区 | 精品中文字幕在线播放 | 午色影院 | 精品在线视频播放 | 国产亚洲精品综合一区91555 | 99re热精品视频 | av影院在线播放 | 91久久国产综合精品女同国语 | 国产精品视频一区二区三区四 | 精品一区二区三区在线观看视频 | 九九热精品视频在线播放 | 成人福利在线免费观看 | 免费高潮在线国 | 成年人网站国产 | 91久久国产综合久久91精品网站 | 国产精品久久久久久久久久久久久久久 |