【问题标题】:Laravel start file download from different URLLaravel 从不同的 URL 开始文件下载
【发布时间】:2018-02-09 20:57:51
【问题描述】:

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

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

【问题讨论】:

  • 你试过下载属性了吗?

标签: php laravel


【解决方案1】:

您可以使用类似 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 加密)。

【讨论】:

    【解决方案2】:

    使用download属性

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

    【讨论】:

    • 没有解决问题
    • 只是事实上你发布了 HTML,尽管没有提到任何关于 HTML 的内容
    猜你喜欢
    • 2020-12-01
    • 2013-09-01
    • 2021-11-06
    • 2017-06-16
    • 2020-02-16
    • 2014-11-21
    • 1970-01-01
    • 2021-01-29
    • 1970-01-01
    相关资源
    最近更新 更多