【问题标题】:Laravel response download does not download zip file and show no errrosLaravel 响应下载不下载 zip 文件并且不显示错误
【发布时间】:2019-05-10 13:17:47
【问题描述】:

我正在尝试下载现有的 zip 文件。 response()->按照HTTP Responses - Laravel 中的说明下载不会开始下载并且没有显示错误。

尝试了几种组合:有名字,没有名字,有不同的标题,没有标题,不同的文件夹,还有 Response::download 而不是 response()->download。

在所有这些中,下载都没有开始,我没有错误。

$filename = 'test.zip';
$zip_file_path = storage_path("app/uploads/public/temp/{$filename}");
$headers = ["Content-Type" => "application/zip"];

return response()->download($zip_file_path, 'test.zip', $headers);

文件存在,如果路径无效,我得到正常的“文件不存在”错误。

extension=php_fileinfo.dll 未注释。

你能帮我更多的想法吗? 我真的很想使用这个函数来使用 deleteFileAfterSend(true) 功能。

谢谢

【问题讨论】:

  • 那么dd(response()->download($zip_file_path, 'test.zip', $headers))的输出是什么?
  • 谢谢。老实说,我不记得这样做了。我懂了。 drive.google.com/file/d/17EewrrQ8s1uWekRO2-yKOJBEQpwIovWN/…
  • 那是你的错误:) 你不能只从驱动器中存储这个文件。您必须使用驱动 API。
  • 这是有道理的。你怎么能用转储文件来理解呢?但是,我不太确定该怎么做。要创建我正在使用的 zip 文件 Chumper/Zipper $zipper = new Zipper; $result = $zipper->make($filename)->add($files)->close();
  • $files 是要压缩的文件。如何使用驱动 API 执行相同操作并存储?

标签: php laravel-5


【解决方案1】:

问题是我使用 ajax 来调用这个函数。 Ajax 调用不能返回流!

所以解决方案是,在这个 ajax 调用之后,重定向到一个新的控制器方法,该方法返回 response()->download :)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-03-12
    • 1970-01-01
    • 2019-02-05
    • 1970-01-01
    • 2014-04-03
    • 1970-01-01
    • 2023-04-10
    • 2015-08-28
    相关资源
    最近更新 更多