Laravel从不同的URL开始下载文件

时间:2018-02-09 12:42:29

标签: php laravel

在我的Laravel应用程序中,我希望我的后端控制器为具有不同Web地址的用户(即另一个域而不是Laravel)开始下载。对于内部存储,我知道如何正确开始下载,但如果我只有直接链接(例如:https://xy.tld/web/image1.png)而没有'离开' Laravel实例(当前窗口不得更改)?

编辑:我发现了这个(Download a file in Laravel using a URL to external resource),我不想将它下载到我的laravel ere发送给用户。但是,有人提到重定向。我可以在不同的窗口/标签中重定向吗?

2 个答案:

答案 0 :(得分:0)

您可以使用类似file_get_contents()的内容从其他服务器获取文件。这会导致不必要的流量,因为服务器1会从服务器2下载文件。这也适用于scp等。

您应该考虑加密:

$hash = encrypt([
    'valid_to' => strtotime('+30 minutes'),
    'file_path' => '/home2/alihoss1/domains/alihossein.ir/public_html/dl/video/MySql/Sql1.mp4'
]);

return redirect('http://server2.example/download/hash/' . urlencode($hash));

然后,您需要使用相同的密钥在第二台服务器上解密它。如果您没有安装laravel,则可以实现自己的解密功能(请参阅:laravel openssl encryption)。

答案 1 :(得分:0)

使用download属性

<a href="https://www.google.ca/logos/doodles/2018/doodle-snow-games-day-1-4597519198715904.3-s.png" download> Download </a>