如何将Spatie / Browsershot生成的文件下载到User / Downloads中?

时间:2019-06-30 04:33:38

标签: laravel-5 download

在laravel 5.8应用程序中,我使用https://github.com/spatie/browsershot

,如果我将文件另存为

$save_to_file= 'file.pdf';
Browsershot::html(htmlspecialchars_decode($pdf_content))
               ->showBackground()
               ->save($save_to_file);

它已下载并保存在本地操作系统的应用程序的/ public目录中

如果我尝试将Kubuntu 18的“下载”目录的路径设置为

$save_to_file= '/home/currentuser/Downloads/file.pdf';
Browsershot::html(htmlspecialchars_decode($pdf_content))
               ->showBackground()
               ->save($save_to_file);

我遇到错误:

Symfony \ Component \ Process \ Exception \ ProcessFailedException
The command "PATH=$PATH:/usr/local/bin NODE_PATH=`npm root -g` node '/mnt/_work_sdb8/wwwroot/lar/votes/vendor/spatie/browsershot/src/../bin/browser.js' '{"url":"file:\/\/\/tmp\/0906513001561868598\/index.html","action":"pdf","options":{"path":"\/home\/serge\/Downloads\/file.pdf","args":[],"viewport":{"width":800,"height":600},"displayHeaderFooter":false,"printBackground":true}}'" failed. Exit Code: 1(General error) Working directory: /mnt/_work_sdb8/wwwroot/lar/votes/public Output: ================ Error Output: ==============

1)是否可以将生成的文件下载到“下载”(独立于操作系统)中?

2)我认为我可以使用php remove功能,但是还是要如何定义“ Downloads”(独立于OS)目录?

1 个答案:

答案 0 :(得分:1)

我收到了完全相同的错误。不知道为什么我明白了。遵循了文档中提到的所有步骤。尝试过的各种资源仍然无法弄清。

最后成功了

$save_to_file= '/var/www/laravel/storage/app/file.pdf';
        Browsershot::url('https://www.google.com')
            ->noSandbox()->format('a4')->save($save_to_file);

->noSandbox()是关键。让我知道这是否适合您。