文档章节

关于ThinkPHP下使用Uploadify插件 仅有火狐提示HTTP Error (302)错误的解决办法

 奋斗的小鱼儿
发布于 2016/11/09 10:52
字数 601
阅读 78
收藏 0

最近用ThinkPHP开发一个项目,集成了批量上传文件插件Uploadify,在谷歌Chrome和IE下都能正常上传,只有火狐下提示这个错误,网上找了很多解决办法,基本都说flash在firefox下重新发起session会话,由于session没有验证通过所以报错,这个问题网上有很多解决方案,但是试了很多,都没有真正解决我的问题,最后看了官方的解决方案
http://www.uploadify.com/documentation/uploadify/using-sessions-with-uploadify/
才真正解决,我用的是ThinkPHP框架,同时我开启了_initialize()(不知道这个函数的去看下ThinkPHP帮助手册),在这个函数里,我执行了一个检测用户是否登陆的验证函数,这样每次访问控制器,都会执行验证用户是否登陆有权限执行相应操作,但是因为在火狐中,flash发起的请求并没有连同SESSIONID一同发送到ThinkPHP控制器,所以导致了无法通过用户登陆请求,这时我们可以在uploadify的formData参数中定义一个SESSIONID,这样就可以通过$_POST或$_GET的方法将SESSIONID发送到控制器,在控制器把传递过去的SESSIONID设置为当前会话的SESSIONID,这样就可以通过验证了,但是,这里需要注意一条,重新设置SESSIONID必须要放在执行验证登陆函数的前边,否则无效,因为如果登陆验证不通过,那么后边的代码就都不会执行了,我之前就犯了这样的错误,将重置SESSION放到了上传文件处理的函数中,下面贴上详细的代码,以供大家参考,有不足之处,望告之,谢谢!
客户端(ThinkPHP上传文件模板)代码

js代码

1

2

3

4

5

6

7

8

9

10

$(function() {

            $('#file_upload').uploadify({

                'formData'     : {

                    '<{:session_name()}>' : '<{:session_id()}>', //此处获取SESSIONID

                    'timestamp' : '<{$timestamp}>',

                    'token'     : '<{$token}>'

                }

                 //后边对于解决本问题无关代码省略。。。

             })

}


 服务器端(ThinkPHP控制器)代码

php代码

1

2

3

4

5

6

7

8

9

10

11

//初始化执行

    public function _initialize(){

        //此处为解决Uploadify在火狐下出现http 302错误 重新设置SESSION

        $session_name = session_name();

        if (isset($_POST[$session_name])) {

            session_id($_POST[$session_name]);

            session_start();

        }

            //执行登陆验证检测函数

        $this->powerverify();       

    }

本文转载自:http://www.edbiji.com/doccenter/showdoc/54/nav/702.html

粉丝 0
博文 11
码字总数 1017
作品 0
宝坻
程序员
私信 提问
!求助:ubuntu下thinkphp框架生成目录权限的问题

!求助:ubuntu下thinkphp框架生成的Application目录中的文件权限都是755, 能否改变, 使其生成时就是777. 另外, 使用thinkphp, 上传文件时, 生成的名字为日期的目录权限无法改变。用upl...

xkeos
2014/05/03
3.5K
5
uploadify和PHP交互中同步session

今天在使用Uploadify和thinkphp进行多文件上传时遇到一个问题,在选择上传的文件并自动上传完成之后,弹出警告窗口提示“http 301”或者“http 302”重定向。后来发现是因为通过Flash插件发起...

岭南六少
2011/10/09
2.7K
4
关于ThinkPHP下使用Uploadify插件 仅有火狐提示HTTP Error (302)错误的解决办法

最近用ThinkPHP开发一个项目,集成了批量上传文件插件Uploadify,在谷歌Chrome和IE下都能正常上传,只有火狐下提示这个错误,网上找了很多解决办法,基本都说flash在firefox下重新发起sessi...

okowo
2016/07/21
0
0
解决swfupload.swf在所有浏览器中发出的多余请求导致的302错误

在项目先是使用了uploadify,后来发现在IE下总会引起程序中的错误. 先说下使用uploadify的这个模块,项目用的是Thinkphp框架,URL解释使用的PATHINFO模式, 请求的页面是一个商品编辑页面,/...

mKa
2013/05/31
0
2
将PHPMailer整合到ThinkPHP 3.2 中实现SMTP发送邮件

将PHPMailer整合到ThinkPHP 3.2 中实现SMTP发送邮件 ThinkPHP没有邮件发送的功能,于是,我就想了想,就将PHPMailer整合到ThinkPHP中吧。 PHPMailer是不符合ThinkPHP规范的插件程序,所以,我...

BearCatYN
2014/08/08
0
0

没有更多内容

加载失败,请刷新页面

加载更多

0.01-Win10安装linux子系统

一、安装Debian子系统 -1、控制面板设置: -1.1、打开“控制面板” —— “程序” —— “启用或关闭Windows功能” —— 勾选 “适用于Linux的Windows子系统” -2、设置: -2.1、打开“设置”...

静以修身2025
昨天
2
0
init 0-6 (启动级别:init 0,1,2,3,4,5,6)

启动级别: init 0,1,2,3,4,5,6 这是个很久的知识点了,只是自己一直都迷迷糊糊的,今天在翻出来好好理解下。。 0: 停机 1:单用户形式,只root进行维护 2:多用户,不能使用net file system...

圣洁之子
昨天
2
0
Android Camera HAL浅析

1、Camera成像原理介绍 Camera工作流程图 Camera的成像原理可以简单概括如下: 景物(SCENE)通过镜头(LENS)生成的光学图像投射到图像传感器(Sensor)表面上,然后转为电信号,经过A/D(模数转...

天王盖地虎626
昨天
2
0
聊聊Elasticsearch的ProcessProbe

序 本文主要研究一下Elasticsearch的ProcessProbe ProcessProbe elasticsearch-7.0.1/server/src/main/java/org/elasticsearch/monitor/process/ProcessProbe.java public class ProcessProb......

go4it
昨天
3
0
mysql PL(procedure language)流程控制语句

在MySQL中,常见的过程式SQL语句可以用在存储体中。其中包括IF语句、CASE语句、LOOP语句、WHILE语句、ITERATE语句和LEAVE语句,它们可以进行流程控制。 IF语句相当于Java中的if()...else if(...

edison_kwok
昨天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部