uploadify,swfupload等flash上传session丢失问题,无法接收到表单
2013-06-21 10:37
344 查看
大部分网站的上传文件功能都要求用户登陆,而判断用户登陆状态一般是用session标记。
现在流行flash上传插件,优点是显示每个文件上传的进度条,可中途取消,暂停等等。
然而用flash上传插件有个问题,那就是上传的时候flash会丢失session,服务端会以为是游客而拒绝处理。
解决办法是有的,下面慢慢道来:
我们知道,php里启用session,每个session都会有一个sessionid作为session文件标识,也就是说,当一个用户访问网页的时候,php会自动给这个用户创建一个session,而用户每次访问的时候,php会先判断这个用户有没有sessionid,有的话就会根据sessionid去读取之前存储的session,也就是说一个sessionid对应一个用户。而我们使用flash上传的时候,实际上php是将flash当作一个新的用户,默认是没有对应的sessionid的。
那么我们只要想办法把sessionid这个钥匙给flash,让它带到服务器上,服务器再根据这把钥匙打开对应的session就行了,就好像是一根宽带,用路由器拨号共享给多个人。
php端:
前端:
解释:
我们前段页面里,通过echo session_id(); 将我们当前的session_id写入表单,php端接收到sessid,然后在启动session之前,先用session_id($sessid)来告诉服务器,我们要取这个session_id对应的session。
以uploadify为例:
只要在初始化的时候,在 formData : {"sessid":"<?php echo session_id();?>"} 即可将session_id传给服务器。
现在流行flash上传插件,优点是显示每个文件上传的进度条,可中途取消,暂停等等。
然而用flash上传插件有个问题,那就是上传的时候flash会丢失session,服务端会以为是游客而拒绝处理。
解决办法是有的,下面慢慢道来:
我们知道,php里启用session,每个session都会有一个sessionid作为session文件标识,也就是说,当一个用户访问网页的时候,php会自动给这个用户创建一个session,而用户每次访问的时候,php会先判断这个用户有没有sessionid,有的话就会根据sessionid去读取之前存储的session,也就是说一个sessionid对应一个用户。而我们使用flash上传的时候,实际上php是将flash当作一个新的用户,默认是没有对应的sessionid的。
那么我们只要想办法把sessionid这个钥匙给flash,让它带到服务器上,服务器再根据这把钥匙打开对应的session就行了,就好像是一根宽带,用路由器拨号共享给多个人。
php端:
1 | <?php |
2 | session_id( $_REQUEST [ "sessid" ]); |
3 | session_start(); |
4 | ?> |
1 | < form > |
2 | < input type = hidden name = "sessid" value=<?php echo session_id();?>/> |
3 | < input type = submit value = "提交" /> |
4 | </ form > |
我们前段页面里,通过echo session_id(); 将我们当前的session_id写入表单,php端接收到sessid,然后在启动session之前,先用session_id($sessid)来告诉服务器,我们要取这个session_id对应的session。
以uploadify为例:
只要在初始化的时候,在 formData : {"sessid":"<?php echo session_id();?>"} 即可将session_id传给服务器。
相关文章推荐
- 解决使用FireFox下Flash上传文件时SESSION丢失的问题(swfupload)
- 基于jQuery和Flash的多文件上传插件uploadify在asp.net下session丢失解决方案
- ASP.NET Session丢失问题 表单验证机制(FormsAuthentication)却无法判断该用户已登入
- 3ff8 使用spring-session管理session时,针对flash上传组件丢失session的问题处理
- 解决文件上传插件Uploadify在火狐浏览器下,Session丢失的问题
- Uploadify配置记录以及上传Session丢失问题解决java版
- 解决uploadify上传丢失session问题
- (转)由Uploadify插件想到的Flash无法传递Session和Cookie的问题解决
- swfupload上传 firefox flash session问题【备忘】
- 解决ssh项目用swfupload上传文件时session丢失问题.
- Uploadify上传Session丢失问题
- 基于jQuery和Flash的多文件上传插件uploadify在asp.net下session丢失解决方案
- ssh项目使用uploadify-v2.1.4上传插件出现诡异问题(session丢失、初始化请求)
- as2 flash firefox session image 上传图片 丢失问题
- 解决ThinkPHP5使用uploadify上传文件session无法传递的问题
- 使用jsp用来接收表单上传的数据时,上传参数会丢失
- uploadify上传导致session丢失解决方案
- 关于uploadify在Firefox下session丢失的问题
- 解决uploadify在Firefox下丢失session的问题
- JQuery文件上传插件uploadify在MVC中Session丢失的解决方案