js uploadify 插件 session丢失问题 php解决方案

由于uploadify属于flash上传,意味着当上传的时候会新建一个新的session会话,php后台处理的时候会接收不到当前浏览器的session会话参数. 如果上传文件后台地址做了基于服务器session值作为登录或者其他条件判断的话,将会失效.这也是 uploadify 一个bug,官方给出了php的解决方法.

In Uploadify, the Flash file is what communicates with the backend script.  Because of a bug in Flash, the session cookie is not picked up by the Flash file.  To circumvent this, you will need to pass the session data via the formDataoption.  To do this in PHP, use the following code when initializing Uploadify on the front-end page:

前台使用uploadify的地方加入一下代码

$('#file_upload).uploadify({

// Your normal options here

formData : { '<?php echo session_name();?>' : '<?php echo session_id();?>' }

});

后台方面,即加入判断如果存在了session_name则 以uploadify传入的session作为新的依据

$session_name = session_name();

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

//exit;

} else {

session_destroy();

session_id($_POST[$session_name]);

@session_start();

}

如果使用的是thinkphp框架的话,前端不变,后端如果使用的是tp中的session作为判决依据则可以这么写

$session_name = session_name();

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

//exit;

} else {

session('[pause]');                //tp默认已经开启,先暂停

session_id($_POST[$session_name]);  //这个要在session_start()之前

session('[start]');                //再开启

}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Php:脚本语言,网站建设,服务器端运行 PHP定义:一种服务器端的HTML脚本/编程语言,是一种简单的、面向对象...
    廖马儿阅读 2,197评论 2 38
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,957评论 19 139
  • The Insider's Guide to PHP InterviewingUbiquitous…that is...
    Yves_lau阅读 524评论 1 2
  • 1. 还有几天,又到高考 总有人在这个时候问暖叔 “我该选择什么专业才好呢,好头疼” 暖叔我才头疼呢,每年都要被问...
    热点拆解社阅读 168评论 0 0