【问题标题】:Laravel 5 Multiple Download FileLaravel 5 多个下载文件
【发布时间】:2016-08-09 02:24:43
【问题描述】:

如果我在 127.0.0.1/load/files 打开浏览器,此代码将正常工作。 (自动下载文件)

ABCController.php

namespace App\Http\Controllers;

use Response;
use File;

function download_file(){
    return Response::download(public_path() . "/files/file_1.txt");
}

routes.php

Route::get('/load/files','ABCController@download_file');

我可以使用 1 个路由和 1 个函数同时下载 2 个文件吗?比如

function download_file(){
    return Response::download(["file_1.txt","file_2.txt"]); //this code not right
}

感谢您的帮助。

【问题讨论】:

  • 你有没有在网络上的任何页面上看到过这样的行为?

标签: php laravel laravel-5 laravel-routing


【解决方案1】:

另一种选择是添加 2 个 iFrame,这对我有用, 所以按照你的例子..

<iframe id="iframe_1" style="display:none;" src="/file_1.txt"></iframe>
<iframe id="iframe_2" style="display:none;" src="/file_2.txt"></iframe>

当然,您需要为 file_1.txt 和 file_2.txt 设置单独的路由和控制器方法...

【讨论】:

    【解决方案2】:

    即使没有使用 jQuery 的 promise() 方法的 zip 选项,也可以在 Laravel 中下载多个文件。

    有关详细解决方案说明(示例+音频),请访问以下链接

    https://www.youtube.com/watch?v=IA03QeE59Fk

    项目链接 https://gitlab.com/Bons/download-multi-files-in-laravel-without-zip-option

    【讨论】:

      【解决方案3】:

      不可能通过 HTTP 协议在同一个请求上同时发送多个文件。 Laravel 也不支持这一点。您必须将文件打包成一个 zip 文件。

      另见

      【讨论】:

      • 我不会说这完全不可能(尽管它对于一个请求是正确的)。我认为类似于弹出两个浏览器窗口,每个窗口都开始下载。但这不值得这些问题,打包文件是一个很好的解决方案。
      • Google 和 Flickr 都提供了一次下载多个文件的方法。我仍然不确定他们是如何做到的。 Google 会一次排队 4 个。如果我没记错的话。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-12-11
      • 2016-04-03
      • 1970-01-01
      • 2016-06-17
      • 2015-04-12
      • 2018-01-20
      • 2015-05-29
      相关资源
      最近更新 更多