1

我有一个控制器,它通过uploadify 处理上传的文件。问题是Auth::check('default')总是返回null。所以我无法检查用户是否已登录并授权上传。

class UploadController extends \app\controllers\AppController {

    // this works perfect, the auth configuration is printed out
    public function index() {
        $auth = Auth::check('default');
        print_r($auth);
    }

    // this doesnt work
    public function uploadify() {
        $auth = Auth::check('default');
        print_r($auth); // always empty!
        ...
    }
}

uploadify函数通过uploadify 调用。我试图追溯问题,但我在StaticObject::_filter以下 if 语句返回 true 的地方结束:

if (!isset(static::$_methodFilters[$class][$method])) {...}

这与不执行 if 语句index()调用不同。但我不知道那里做了什么。

4

1 回答 1

2

感谢#li3,我通过http://www.uploadify.com/forums/discussion/43/using-sessions-tricking-basic-authentication/p1得到了这项工作

在视图中,我使用了 scriptData:

'scriptData': { 'PHPSESSID': '<?php echo(session_id()); ?>'},

在控制器中:

public function uploadify() {
  $id = $_POST['PHPSESSID'];
  session_id($id);
  session_start();
  $auth = Auth::check('default');
  if ($auth == null) {
      return $this->response->status = array('code' => 401, 'message' => 'Unauthorized');
  }
  ...
}
于 2012-02-09T22:00:11.190 回答