Php 从根文件夹laravel之外的文件夹访问文件

Php 从根文件夹laravel之外的文件夹访问文件,php,laravel,Php,Laravel,我有一个管理和客户端的项目。我已经决定将两者分开,有些事情开始让我后悔,但我已经走得太远了,无法回头将它们合并。无论如何,管理部分基本上是用于将内容上传到数据库中,然后客户端可以看到这些内容。上载的文件保存在独立于管理员和客户端根文件夹的文件夹中 我没有上传文件的问题,当试图显示上传的文件时出现了问题,这就引出了我的问题。如何访问保存在根文件夹外的文件夹中的文件 文件夹结构 管理文件夹 保存上载文件的文件夹(名为“common”) 客户端文件夹 Filesystem.php(客户端) ]) ph

我有一个管理和客户端的项目。我已经决定将两者分开,有些事情开始让我后悔,但我已经走得太远了,无法回头将它们合并。无论如何,管理部分基本上是用于将内容上传到数据库中,然后客户端可以看到这些内容。上载的文件保存在独立于管理员和客户端根文件夹的文件夹中

我没有上传文件的问题,当试图显示上传的文件时出现了问题,这就引出了我的问题。如何访问保存在根文件夹外的文件夹中的文件

文件夹结构
  • 管理文件夹
  • 保存上载文件的文件夹(名为“common”)
  • 客户端文件夹
  • Filesystem.php(客户端) ])

    php脚本检索文件 小提醒: 您有以下文件路径:

    IMAGE:a文件夹/Parentfolder/Ifolder/IMAGE.png

    PHP:Afolder/Parentfolder/Efolder/file.PHP

    如果您使用的是PHP文件,那么您就在Efolder中。您必须返回路径(父文件夹)

    • 要在PHP文件中调用此图像,必须使用
      。/Ifolder/image.png
      (…返回)

    假设您的文件系统层次结构类似于:

    /path-to-projects/admin/app
    /path-to-projects/client/app
    /path-to-projects/common
    
    然后,要进入
    /path to projects/common
    ,您可以像这样设置磁盘:

    'common' => [
        'driver' => 'local',
        'root' => base_path('../common'),
    ],
    
    base\u path()
    函数将为您获取项目的绝对路径(例如客户项目的
    /path to projects/client
    )。传入的参数将添加到该绝对路径


    因此,
    base\u path(“../common”)
    将为您提供
    /path to projects/client//common
    ,它将解析为
    /path to projects/common
    ,多亏Patricus的建议,将公共目录符号链接为每个项目的公共文件夹下的新目录,我最终解决了这个问题。
    像这样
    mklink/D“C:\wamp64\www\ngugi\get.it.here.shop\uu\public\common”“C:\wamp64\www\ngugi\common”

    谢谢你。这是我尝试过的,
    。\..\common
    ,但似乎没有任何效果。上传文件的路径是什么?C:\wamp64\www\ngugi\common\common“问题”是什么?您尝试解决了什么问题?谢谢您,我已经尝试过了,当我检查图像时,这是浏览器中显示的
    ,因此我根据您的建议猜测路径似乎是正确的,但图像仍然不正确display@MichaelKiarie您不能像这样从web访问不在文档根目录下的文件。否则,这将是一个巨大的安全漏洞。如果要像访问资产一样访问这些文件,则需要将公共目录作为每个项目的公用文件夹下的新目录进行符号链接。在Windows上:
    mklink/J”/path to projects/client/public/common”/path to projects/common“
    。然后您可以像
    asset('common/004.jpg')一样访问资产。
     $img = DB::table('product_images') #Accessing file path from database
            ->where('products_id', $id)
            ->get()->first();
    
           
        $img_name = $img->img;
        return Storage::disk('common')->path($img_name);
    
    /path-to-projects/admin/app
    /path-to-projects/client/app
    /path-to-projects/common
    
    'common' => [
        'driver' => 'local',
        'root' => base_path('../common'),
    ],