1

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

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

  1. 一种可能的方法是创建数据库,如: id, user_id, name, path.

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

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

    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()
    }
    
4

1 回答 1

2

在这种情况下,最好用图像保存 user_id,对数据库的命中率最低。

于 2012-11-20T11:46:07.730 回答