php Laravel网站拒绝显示在app/public文件夹中搜索到的图像

rdlzhqv9  于 2023-11-16  发布在  PHP
关注(0)|答案(2)|浏览(150)

问题是:我想在浏览器中显示位于app/public文件夹中的图像。算法如下:1-获取引用; 2-在app/public中查找每个具有该名称的文件及其名称; 3-在刀片文件中显示它们中的每一个。
下面是我的blade文件:

<div class="py-16">
        <div class="max-w-7xl mx-auto sm:px-6 lg:px-8">
            
                @foreach($matchingFiles as $file)
                    <!--<img src="{{asset('storage/'.$file->getPathname()) }}" alt="{{$file->getFilename() }}">-->
                    <img src="{{ asset('dossiers/' . urlencode($file->getPathname())) }}" alt="{{ $file->getFilename() }}">
                @endforeach`

字符串
以下是我的控制器内部的内容:

public function consult($id){
        $tableData=alignement::find($id);
        $reference=$tableData->reference;
        $directory=storage_path("app/public/dossiers");
        $contents=File::allFiles($directory);
        $matchingFiles=[];

        foreach($contents as $file){
            if(strpos($file->getFilename(),$reference) !==false){
                $matchingFiles[]=$file;
            }
        }
        return view('displayFolder',['matchingFiles'=>$matchingFiles]);
    }


结果:它实际上检测到的图像,但只返回损坏的图像图标为每个文件检测。我该怎么办?
起初,这些文件在app/dossiers中,但我将它们移动到app/public/dossiers中,希望它能正确显示。

bgtovc5b

bgtovc5b1#

首先,您需要确保您的app/public可以通过在cmd中运行php artisan storage:link从Web访问。确保在您的公用文件夹中创建了快捷文件夹 storage
然后,你可以像@kris在下面的评论中说的那样做。

<img src="{{ asset('storage/dossiers/' . urlencode($file->getPathname())) }}" alt="{{ $file->getFilename() }}">

字符串
确保路径像storage/app/public/dossiers/image.jpg

uurity8g

uurity8g2#

你可以改变:$directory=storage_path(“app/public/dossiers”);
签署人:
$directory=public_path(“app/public/dossiers”);
尝试?

相关问题