Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/291.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-Storage::files($user->;email)将不需要的正斜杠返回到文件夹 拉威尔5.4 Win10上的XAMPP_Php_Laravel_Laravel Storage - Fatal编程技术网

Php Laravel-Storage::files($user->;email)将不需要的正斜杠返回到文件夹 拉威尔5.4 Win10上的XAMPP

Php Laravel-Storage::files($user->;email)将不需要的正斜杠返回到文件夹 拉威尔5.4 Win10上的XAMPP,php,laravel,laravel-storage,Php,Laravel,Laravel Storage,我真的需要一劳永逸地了解哪个方法返回正向斜杠,哪个方法返回反向斜杠 我已将我的图像保存在一个以每个已连接用户的电子邮件命名的文件夹中: $userImages=Storage::files($user->email) 这个结果给了我: array:7 [▼ 0 => "userEmail@mail.com/88bt97XslJMpre4dpJZO0ZRV9EV9GQbJw3FcQ4u8.png" 1 => "userEmail@mail.com/dBfhlwB5HtNatUU

我真的需要一劳永逸地了解哪个方法返回正向斜杠,哪个方法返回反向斜杠

我已将我的图像保存在一个以每个已连接用户的电子邮件命名的文件夹中:

$userImages=Storage::files($user->email)

这个结果给了我:

array:7 [▼
  0 => "userEmail@mail.com/88bt97XslJMpre4dpJZO0ZRV9EV9GQbJw3FcQ4u8.png"
  1 => "userEmail@mail.com/dBfhlwB5HtNatUUCchZkA5PmqAxqruZi1zV3x3Ue.png"
  2 => "userEmail@mail.com/kbdJkR0oydplRA773uo6GzbYMfPJrtWILuBcuUQB.png"
  3 => "userEmail@mail.com/LHn80pVlrCPEj0YJcy4U6v8kTCuAOU43HGmuBNMs.png"
  4 => "userEmail@mail.com/MHkX31Dv5WmLtR8TsW4DgLTsQKjMwDbOrz3OlU4u.png"
  5 => "userEmail@mail.com/tebwcupwS4vU3BOsiLT5TUO298ImY5DprTHWnCef.png"
  6 => "userEmail@mail.com/YdMHREMBIQbinBw8IqBvfOLjigt5CS0XNAEUE4Le.png"
]
这很酷,因为现在我所要做的就是在前面解析它,但是因为我需要给这些URL一个前缀,所以我使用了
storage\u path()
,如下所示:

@if($userImages)
        @foreach($userImages as $image)
            <img src="{{storage_path().'\\'.$image}}">
        @endforeach
    @else
        doesn't exist
    @endif
@if($userImages)
@foreach($userImages作为$image)
@endforeach
@否则
不存在
@恩迪夫
现在得到的斜杠不匹配如下:

@if($userImages)
        @foreach($userImages as $image)
            <img src="{{storage_path().'\\'.$image}}">
        @endforeach
    @else
        doesn't exist
    @endif
G:\xampp\htdocs\laraGo\storage\userEmail@mail.com/88bt97XslJMpre4dpJZO0ZRV9EV9GQbJw3FcQ4u8.png

第一个斜杠遵循
storage\u path()
的斜杠约定,但我从控制器得到的是:
$userImages
数组有不同的斜杠约定

如果您能让我知道使用存储路径是否存在问题,或者我应该使用另一种Laravel方法,我将非常高兴

我也很乐意知道是否有办法知道哪些方法能给我带来什么样的道路


谢谢,巴德。

嗯,我在访问时使用env APP\u URL

 <img src="{{ env('APP_URL').'/storage/'.$image}}">

hmm访问时我使用env APP\u URL

 <img src="{{ env('APP_URL').'/storage/'.$image}}">

您可以使用,这将使用请求的当前方案(HTTP或HTTPS)为资产生成URL


您可以使用,这将使用请求的当前方案(HTTP或HTTPS)为资产生成URL


您正在使用
存储路径()
生成URL,如

返回存储目录的完全限定路径


这意味着您将返回存储的本地路径,即您的计算机上的文件夹,在您的示例中,该文件夹似乎是windows计算机,在所有路径中都使用反斜杠。如果在基于unix的计算机上运行此操作,您将收到一个由正向斜杠组成的路径。但是,在这种情况下,您似乎试图创建一个URL来显示图像,这对您来说是有效的,因为生成的URL引用本地计算机上的图像。但是,如果您试图从计算机以外的任何计算机访问,这将不起作用。要创建资产的有效URL,您需要使用帮助器,该帮助器将生成资产的有效URL。

您正在使用
存储路径()
生成URL,如

返回存储目录的完全限定路径


这意味着您将返回存储的本地路径,即您的计算机上的文件夹,在您的示例中,该文件夹似乎是windows计算机,在所有路径中都使用反斜杠。如果在基于unix的计算机上运行此操作,您将收到一个由正向斜杠组成的路径。但是,在这种情况下,您似乎试图创建一个URL来显示图像,这对您来说是有效的,因为生成的URL引用本地计算机上的图像。但是,如果您试图从计算机以外的任何计算机访问,这将不起作用。要创建指向资产的有效URL,您需要使用帮助器,该帮助器将生成指向您资产的有效URL。

首先感谢您的回答Aan,但前端是否会出现安全问题?您可以在访问服务器时将.env file permission设置为755。首先感谢回答Aan,但是,在前端提高env的安全性难道不应该存在这样的问题吗?您可以将.env文件权限设置为755,当您访问服务器时,这会给我:
http://larago.dev/storage/userEmail@mail.com/88bt97XslJMpre4dpJZO0ZRV9EV9GQbJw3FcQ4u8.png
无法访问,因为链接已断开且不工作。如果此操作不工作然后,
larago.dev
没有指向您的Web服务器,并且您的环境没有正确设置。这给了我:
http://larago.dev/storage/userEmail@mail.com/88bt97XslJMpre4dpJZO0ZRV9EV9GQbJw3FcQ4u8.png不可访问,因为链接已断开且不工作。如果此链接不工作,则
larago.dev
不会指向到您的Web服务器,并且您的环境设置不正确。