用户
 找回密码
 入住 CI 中国社区
搜索
查看: 3129|回复: 4
收起左侧

[HELP] uploadify上传session问题

[复制链接]
发表于 2014-1-7 17:51:24 | 显示全部楼层 |阅读模式
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class MY_Controller extends CI_Controller{
        public function __Construct(){
                parent::__construct();
                define("ID",$this->session->userdata('id'));
                define("USERNAME",$this->session->userdata('username'));
                if(!ID || !USERNAME){
                        redirect("admin/login/index");
                }
        }
}
?>

后台登陆做了这么一个权限判断,在使用uploadify时,加这个权限判断上传就失败了,没加这个session判断,可以正常上传!
视图代码:
<?php session_save_path(FCPATH."/temp");session_start();?>
$(function() {
    $('#upload').uploadify({
        'swf'      : "<?php echo base_url(); ?>uploadify/uploadify.swf",
        'uploader' : "<?php  echo site_url('admin/pai/slider_add') ?>",//服务器端脚本
        'buttonText':"请选择图片",
        'formData'  : {'id' : "<?php echo $this->session->userdata('id')?>"},
        'fileTypeDesc' : 'Image Files',
                'fileTypeExts' : '*.gif; *.jpg; *.png',
                'onUploadSuccess' : function(file, data, response) {
                         alert(data);
                                // alert('The file ' + file.name + ' was successfully uploaded with a response of ' + response + ':' + data);
                }
        // Put your options here
    });
});
控制器代码:
public function slider_add()
        {
        session_save_path(FCPATH."/temp");
        $id = $_POST['id'];
        $this->session->set_userdata('id',"$id");
        session_start();
        p(ID);
        // if($_FILES['Filedata']['error']==0){
        //         //检测是否为合法上传文件
        //         if(is_uploaded_file($_FILES['Filedata']['tmp_name'])){
        //                 is_dir("uploads/slider") || mkdir("uploads/slider","0777",true);//创建上传目录
        //                 $toFile = 'uploads/slider/'.time().mt_rand(1,1000).strrchr($_FILES['Filedata']['name'],'.');//目标文件名
        //                 if(move_uploaded_file($_FILES['Filedata']['tmp_name'],$toFile)){
        //                         echo json_encode(array('error'=>0,"url"=>$toFile));exit;
        //                 }
        //         }
        // }
        // //上传失败
        // echo json_encode(array('error'=>1));exit;
       
        }

请大神提供下思路,弄了一个下午了,还是没搞过来!
发表于 2014-1-7 18:29:26 | 显示全部楼层
uploadify里把session放在formData中传过去。看有没有用:http://pengbotao.cn/uploadify-tips.html
 楼主| 发表于 2014-1-8 09:20:33 | 显示全部楼层
Bobby 发表于 2014-1-7 18:29
uploadify里把session放在formData中传过去。看有没有用:http://pengbotao.cn/uploadify-tips.html ...

那样的方法还是不行...我调试发现uploadify上传到slider_add控制器生成的session_id变化了...就是加上了if(!ID || !USERNAME){redirect("admin/login/index");}这样的一句判断 就上传不了了!
发表于 2014-1-8 10:05:18 | 显示全部楼层
调试一下看看, 确定的问题就是session没有成功获取到。那个是PHP中的session, 传过来之后需要指定session_id,也就是需要接收,不是说传过来就ok的。
发表于 2014-1-9 00:51:30 | 显示全部楼层
最简单的办法是修改config.php里
sess_match_useragent 设成 False
不过这样安全性会降低

本版积分规则