【问题标题】:Download json without creating a file or delete file after return下载json不创建文件或返回后删除文件
【发布时间】:2020-10-22 23:36:22
【问题描述】:

我试图让用户将集合下载为 json 文件,但我不知道该怎么做,不存储文件。

选项 1:完全下载而不存储

我尝试过这样的事情

return response()->download(WorkPersonalReport::all(), 'zapis_prac.json');

这不起作用,因为它不是文件。我可以把它变成一个“伪文件”吗?

选项 2:创建文件,让下载发生,删除文件

public function jsonExport() {
  $wprs = WorkPersonalReport::all();
  file_put_contents('assets/workPersonalReport.json', $wprs);

  return response()->download('assets/workPersonalReport.json', 'zapis_prac.json');
}

public function index() {
  unlink('assets/workPersonalReport.json');
}

优化代码是否可能有任何一个选项?

首先——只是创建一个临时文件,下载完成后会被删除?

second - unlink() return 语句后的文件,而不是每次调用 index()

【问题讨论】:

    标签: php laravel


    【解决方案1】:

    考虑以下sn-p;

    return response(WorkPersonalReport::all(), 200, [
        'Content-Disposition' => 'attachment; filename="collection.json"'
    ]);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-05-31
      • 2012-01-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-03-13
      • 1970-01-01
      相关资源
      最近更新 更多