Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/280.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在laravel 5.3中配置新磁盘时,public_path()还会返回存储文件夹_Php_Laravel 5_Storage - Fatal编程技术网

Php 在laravel 5.3中配置新磁盘时,public_path()还会返回存储文件夹

Php 在laravel 5.3中配置新磁盘时,public_path()还会返回存储文件夹,php,laravel-5,storage,Php,Laravel 5,Storage,因此,在我的public文件夹中有一个名为images的子文件夹,其中包含两个基本图像。 我想做的是使用laravel的存储类来处理我未来的图像(它们将非常多,需要很多功能,所以我希望能够顺利地完成)。 问题是:我正在用以下方法在我的config/filesystems.php中创建一个自定义磁盘: 'disks' => [ //... 'img_disk' => [ 'driver' => 'local', 'root' =&

因此,在我的
public
文件夹中有一个名为
images
的子文件夹,其中包含两个基本图像。 我想做的是使用laravel的
存储
类来处理我未来的图像(它们将非常多,需要很多功能,所以我希望能够顺利地完成)。 问题是:我正在用以下方法在我的
config/filesystems.php
中创建一个自定义磁盘:

'disks' => [

    //...
    'img_disk' => [
        'driver' => 'local',
        'root' => public_path(),
    ],

    //...
但是,当我尝试访问我的图片(打算将其url作为img html项目的源)时,以下方法:

<?php
    echo Storage::disk('img_disk')->url('window.png');
?>

它返回
/storage/window.png
。。。 我只需要一个简单的管理器来管理我的图像源。现在我在本地工作,但当我将其更新到实际的在线服务器时,它也必须工作。 例如,如果我简单地把
,我文件夹中的图片就不会出现问题。我希望以后能保持它的简单性,并将我的图片存储在同一个
images
文件夹的子目录中,这样我就可以使用
Storage
类在任何地方使用它们。
还是我完全错了?我是遗漏了什么还是混淆了什么?任何建议都将受到高度重视

您缺少设置映像目录:

您可以在文件系统配置文件中进行设置,也可以在尝试调用存储对象时进行设置

因此,您需要按如下方式更改文件系统文件:

'root' => public_path('images'),
'disks' => [

    //...
    'img_disk' => [
        'driver' => 'local',
        'root' => public_path('images'),
        'url' => public_path('images'), // HERE
    ],

    //...
或者,当你试图称自己为“形象”时:

echo Storage::disk('img_disk')->get('images/window.png');
//                              ^^^
注意,根元素用于获取图像

要使用url函数,您需要向文件系统配置文件提供
url
元素,如下所示:

'root' => public_path('images'),
'disks' => [

    //...
    'img_disk' => [
        'driver' => 'local',
        'root' => public_path('images'),
        'url' => public_path('images'), // HERE
    ],

    //...
现在您可以轻松地使用
url
方法:

echo Storage::disk('img_disk')->url('window.png');

我明白了,非常感谢!目录现在已正确返回。但是现在还有一个不相关的问题-chrome不允许我通过
访问我的C盘中的文件,所以我也必须解决这个问题。。。奇怪的是,当我直接输入目录时,它会工作。。。但别客气。不过,感谢laravel解决方案,我真的忘记了url参数!不客气,浏览器将不允许您访问本地调用的文件,例如使用路径调用文件,如
C:\\image.jpeg
,您需要定义绝对路径,例如:
http://example.com/image.jpeg
我知道,我刚刚将文件上传到了整个项目将要上传到的服务器上。现在通过
filesystems.php
中的绝对地址引用它们^^