问题是:我想在浏览器中显示位于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中,希望它能正确显示。
2条答案
按热度按时间bgtovc5b1#
首先,您需要确保您的
app/public
可以通过在cmd中运行php artisan storage:link
从Web访问。确保在您的公用文件夹中创建了快捷文件夹 storage。然后,你可以像@kris在下面的评论中说的那样做。
字符串
确保路径像
storage/app/public/dossiers/image.jpg
。uurity8g2#
你可以改变:$directory=storage_path(“app/public/dossiers”);
签署人:
$directory=public_path(“app/public/dossiers”);
尝试?