在Laravel中

时间:2018-03-25 15:10:59

标签: php laravel security laravel-5 file-upload

我正在开发一个管理员可以上传文件的网站(仅限管理员在限制区域内)并将文件与用户关联。 当普通用户登录网站时,他们会有一个“文档”部分,他们可以看到上传并与之关联的文件。

我在网上挖了很多但是所有的信息让我很困惑,所以我想问你所有人:)

这是我基本上想要实现的目标:

  1. 管理员可以访问可以使用上传表单上传多个文件的受限区域,并且对于每个文件,她可以选择用户来关联文件。
    我希望能够创建表单,在任何更新发生之前,列出文件名和多选框,其中所有用户都靠近每个文件名。

  2. 上传的文件将与一个或多个用户相关联,用户可以与多个文件相关联。即多对多关系 我想创建一个file_user数据透视表,以便每个File类都可以与User类的许多实例相关联,反之亦然。

  3. 文件的名称应保留为原始名称,但应该存在重复名称的可能性。因此,我应该创建一些东西来区分文件并使它们保持唯一(但仍然使用相同的文件名) 我想到了不同的文件夹名称,但它在服务器中会很乱。

  4. 用户应该能够访问和下载与其关联的文件。他们不应该能够访问与他们无关的文件,也不能知道它存在的文件。 (即找不到文件而不是权限被拒绝)。

  5. 我已经实现了身份验证,并且我知道如何创建仅限于Admin的页面。为了实现文件上传和下载服务,我想到了这样的事情:

    1. 使用迁移和控制器
    2. 创建File模型
    3. 创建FileController@create(多文件上传表单视图),FileController@store(用于存储数据库中的文件),FileController@index(处理用户看到文件的视图)与它们相关联并可以下载它们)和FileController@download(负责将文件下载到授权用户)FileController中的函数。
    4. 为上述方法创建视图
    5. 在数据库中创建files表(通过迁移)以包含file_idfile_name
    6. 创建file_user数据透视表,因为它们具有多对多的特征。
    7. 我正在努力实现上述内容,将文件限制为允许的用户,我不确定这是最好和最安全的方法。

      你会如何实现这个?如果你有时间,我会很感激你是否会为每个阶段添加一些代码,以便我能更好地理解。实现这一目标的简单应用程序是最好的学习方法。到目前为止,我没有找到任何在线。

      我很乐意详细说明并详细解释不清楚的部分 谢谢!

0 个答案:

没有答案