cherub 发表于 2014-1-7 17:51:24

uploadify上传session问题

<?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' : "<?phpecho 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;
       
        }

请大神提供下思路,弄了一个下午了,还是没搞过来!

Bobby 发表于 2014-1-7 18:29:26

uploadify里把session放在formData中传过去。看有没有用:http://pengbotao.cn/uploadify-tips.html

cherub 发表于 2014-1-8 09:20:33

Bobby 发表于 2014-1-7 18:29 static/image/common/back.gif
uploadify里把session放在formData中传过去。看有没有用:http://pengbotao.cn/uploadify-tips.html ...

那样的方法还是不行...我调试发现uploadify上传到slider_add控制器生成的session_id变化了...就是加上了if(!ID || !USERNAME){redirect("admin/login/index");}这样的一句判断 就上传不了了!

Bobby 发表于 2014-1-8 10:05:18

调试一下看看, 确定的问题就是session没有成功获取到。那个是PHP中的session, 传过来之后需要指定session_id,也就是需要接收,不是说传过来就ok的。

baiyuxiong 发表于 2014-1-9 00:51:30

最简单的办法是修改config.php里
sess_match_useragent 设成 False
不过这样安全性会降低
页: [1]
查看完整版本: uploadify上传session问题