Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/242.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Laravel 5:动态生成上传文件的链接(路由)_Php_Laravel_Laravel 5_Laravel Routing - Fatal编程技术网

Php Laravel 5:动态生成上传文件的链接(路由)

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/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'));
}
下面是显示文件列表的视图文件:

<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>