Php Laravel 5:动态生成上传文件的链接(路由)
我有一个简单的表单,用户可以上传文件。文件上载到public/uploads目录 表单下方是public/uploads目录中所有文件的列表 下面是我的控制器方法:Php Laravel 5:动态生成上传文件的链接(路由),php,laravel,laravel-5,laravel-routing,Php,Laravel,Laravel 5,Laravel Routing,我有一个简单的表单,用户可以上传文件。文件上载到public/uploads目录 表单下方是public/uploads目录中所有文件的列表 下面是我的控制器方法: public function store(Request $request) { if ($request->hasFile('file_upload')) { if ($request->file('file_upload')->isValid()) { $req
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'));
}
下面是显示文件列表的视图文件:
<ul>
@foreach($list_of_files as $file)
<li><a href="#">{{ basename($file) }}</a></li>
@endforeach
</ul>
@foreach($file形式的文件列表)
@endforeach
我应该在href=“”中添加哪些内容才能获得指向这些文件的链接(我需要通过哪些途径才能获得这些链接)
您可以使用
asset()
帮助程序生成指向公用目录的URL
假设您正在上传
目录中存储文件。您可以像这样使用它
您只需确保basename($file)
是文件的名称,这样当他们单击链接时,它实际上会将他们带到文件
全文:
<ul>
@foreach($list_of_files as $file)
<li><a href="{{ asset('uploads/' . basename($file)) }}">{{ basename($file) }}</a></li>
@endforeach
</ul>
@foreach($file形式的文件列表)
@endforeach
不是解决方案或您正在寻找的内容,而是使用它来命名文件并避免将来出现其他问题日期('Y-m-d-H:i:s')。“-”$image->getClientOriginalName();谢谢,我还有一个关于路由的noob问题:现在我有了指向文件的链接,当我单击某个链接(例如打开一些.pdf文档)时,我将有以下URL:。我没有在routes.php中定义任何与此类URL匹配的内容(uploads/some_file_name)。我想,如果我们想让这样的链接起作用,我们需要在routes.php中定义它们?我的意思是,我网站上的每个URL都必须在routes.php中定义才能工作,对吗?对不起,我的英语很差。如果该目录在您的公用文件夹中,那么您可以自己直接导航到它-与css文件或JavaScript文件的导航方式相同。如果目录在公用文件夹之外,则需要设置路由和功能来处理该目录的查看或下载file@PeraMika例如,如果您将文件invoice.pdf存储在public/uploads/invoice.pdf中,则可以使用example.com/uploads/invoice.pdf在浏览器中直接导航到该文件,而无需为其定义特定路线。这有意义吗?
<ul>
@foreach($list_of_files as $file)
<li><a href="{{ asset('uploads/' . basename($file)) }}">{{ basename($file) }}</a></li>
@endforeach
</ul>