我有一个简单的表单,用户可以在其中上传文件。文件上载到public/uploads目录。
表单下面是public/uploads目录中所有文件的列表。
所以,这是我的控制器方法:
public function store(Request $request)
{
if ($request->hasFile('file_upload')) {
if ($request->file('file_upload')->isValid()) {
$request->file('file_upload')->move(public_path().'/uploads/', $request->file('file_upload')->getClientOriginalName());
}
}
$list_of_files = 'File::allFiles(public_path().'/uploads/');
return view('foo', compact('list_of_files'));
}
这是显示文件列表的View文件:
<ul>
@foreach($list_of_files as $file)
<li><a href="#">{{ basename($file) }}</a></li>
@endforeach
</ul>
我应该在href="中放入什么才能链接到这些文件(以及我需要使用哪些路由才能使这些链接正常工作)?
您可以使用asset()
帮助程序生成公共目录的URL。
假设您将文件存储在uploads
目录中。你会这样使用<li><a href="{{ asset('uploads/' . basename($file)) }}">{{ basename($file) }}</a></li>
你只需要确保basename($file)
是文件的名称,这样当他们点击链接时,它就会把他们带到文件中。
完整:
<ul>
@foreach($list_of_files as $file)
<li><a href="{{ asset('uploads/' . basename($file)) }}">{{ basename($file) }}</a></li>
@endforeach
</ul>
href="/public/{{ basename($file) }}"
应该做的工作,使链接工作没有限制