可能使用blade.php打开本地文件并显示内容?拉拉韦尔

时间:2019-01-22 07:47:37

标签: php laravel file laravel-5 request

当前我有一个使用laravel 5.5的项目 我有一些文本文件存储在storage/public/*中 我一直在考虑是否有一种方法可以使用laravel的刀片并直接打开所选文件,而不是向后端发出请求以检索内容然后显示。

这个想法是在*.blade.php内部,您可以单击一个按钮,然后不向后端提出请求,可以打开文本文件然后显示内容吗?

例如,我确实有类似html代码的

<input type='hidden' value='filePath' name=path>
<a href="">text file name</a>

单击锚点时,通常是向后端请求打开文件,获取内容,然后将其传递回前端。 但是我在想的是,因为前端知道路径在哪里,所以文件名。可以在前端进行吗?这样,也无需更快地完成请求。

但是我不知道如何启动它。

有人有什么建议吗?

在此先感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

假设查看网页的人员可以访问您的文件,则可以使用file URLS(或仅在刀片文件中输入URL?)。

<a href="http://public/fixed/path/to/file">Title</a>

或者,如果生成刀片文件时文件是预先确定的,则在控制器中执行以下操作:

use Illuminate\Support\Facades\Storage;

public function index()
{
    return view('view.name', [
        'url' => Storage::url('file.jpg')
    ]);
}

在您的Blade文件中:

<a href="{{ $url }}">Title</a>

如果您将刀片文件视为前端,则请记住,一旦用户查看刀片文件,该文件就不会托管在服务器上。您将需要执行上述操作,以使刀片服务器生成正确的文件URL(除非您只是在谈论静态的托管文件)

但是,如果您对后端和前端的引用是关于逻辑应该走到哪里,那么答案就是“后端”。 MVC模式的重点是将正确的逻辑放在正确的位置,因此Blade文件(在MVC中表示View的V)仅应与表示有关,而不是挖掘文件并生成URL。