是否有可能在Laravel控制器中显示公用文件夹中的图像?

是否有可能在Laravel控制器中显示公用文件夹中的图像?,laravel,laravel-8,Laravel,Laravel 8,此函数仅返回一个图像。但我想显示存储在此文件夹中的所有图像。有人能帮我吗 我的控制器 public function index() { $get=Resturant::all(['id','name','image']); foreach ($get as $image) { $path =public_path().'/Images/Resturants/'.$image->image; $file= File:

此函数仅返回一个图像。但我想显示存储在此文件夹中的所有图像。有人能帮我吗

我的控制器

    public function index()
    {
      $get=Resturant::all(['id','name','image']);

      foreach ($get as $image) {
        $path =public_path().'/Images/Resturants/'.$image->image;
        $file= File::get($path);
        $type= File::mimeType($path);
        $response= Response::make($file, 200);
        $response->header("Content-Type",$type);

        return $response;
      }
    }


您不需要尝试返回文件响应,因为您的web服务器本身可以处理
public
文件夹中的服务文件。另外,您也不会试图在响应中返回多个文件(不知何故)。您只需将一个URL数组返回到这些文件,并让使用这些URL的用户请求通过URL获取这些文件。这将大大简化控制器方法:

return Resturant::pluck('image')
    ->map(fn ($i) => asset('Images/Resturants/'. $i));
这里是PHP8,但它非常简单,只需要从每个图像生成URL

如果您希望名称与此匹配,可以调整
pull
以使用列作为索引:

...pluck('image', 'name')...

删除返回表单循环并更改对数组的响应。然后tryi做了。但同样的问题。你可以像这样直接在刀片文件上使用图像:,为什么你要做那么多乱七八糟的事情。请您解释一下,没有刀片文件,因为我正在开发一个rest API。这些文件都在您的公用文件夹中,只需返回这些图像的URL数组,让客户端请求从web服务器获取这些图像。我尝试过。但它返回唯一的图像名称。不是显示图像。它不会返回图像,只返回URL。。。这就是问题所在,您无需尝试从控制器返回文件响应,因为Web服务器是为已经“Tanawal”的文件而构建的:“C:\\xampp\\htdocs\\user\\public\\Images/Resturants/1610613985.jpg”,它现在显示前端开发人员将如何看待图像?@fahadaslam更新,使用了错误的功能,很抱歉,我做什么??