Yii中上传文件的访问控制

时间:2012-11-20 09:15:47

标签: yii acl

处理文件访问限制的最佳方法是什么?目标是仅允许对其作者访问某些上传文件。

我决定将文件保存在/ protected / files文件夹中,我想知道返回这些文件的最佳方法是什么。

  1. 可能的方法之一是创建db,如: id, user_id, name, path

    具有特定user_id的用户可以通过/resource/name.jpg(具有名为ResourceController的通用控制器)等请求访问他的文件

  2. 第二种方法是在没有ResourcesController的情况下存储id, name, path。在每个其他控制器(需要访问用户文件)中创建一个将执行访问控制的操作。

    function actionMessageImage()
    {
      $message_id = $_GET['message_id'];
      $model = Message::model()->find( ... check user_id for access control)
    
      $file = File::model()->findByPk($model->file_id)
    
      // then make request such as $file->get(); that performs readFile()
    }
    

1 个答案:

答案 0 :(得分:2)

在这种情况下,使用图像保存user_id是最好的,最小点击数据库。