mpdf 更改临时路径(作曲家包)


mpdf change temp path (composer package)

我已经通过作曲家安装了mpdf/mpdf

开发环境中一切正常,但是在生产/暂存中,我收到权限错误。

file_put_contents('/.../ttfontdata'/dejavusanscondensed.GSUBGPOStables.dat): failed to open stream: Permission denied' in .../shared'/vendor'/mpdf'/mpdf'/classes'/ttfontsuni.php:999'nStack trace:'n#0 [internal function]: Illuminate''Exception''Handler->handleError(2, 'file_put_conten...', '...', 999, Array)'n#1 

根据 mpdf 文档,我需要定义存储文件夹的路径:

// Tried this at top of index.php before require bootstrap/autoload.php
define("_MPDF_TEMP_PATH", dirname(__FILE__) . '/../app/storage/mpdf/');
// Tried this just before creating a new mpdf
define("_MPDF_TEMP_PATH", storage_path() . '/mpdf/');

我正在使用 Laravel 作为框架 - mpdf 只是不会使用我指定的临时文件夹

我知道

这是一个老问题,但我有同样的问题。 就像您最初建议的那样,您可以在加载 mPDF 库之前定义临时路径,但还需要定义字体数据路径。

我把它添加到我的/bootstrap/autoload.php 文件的顶部:

define("_MPDF_TEMP_PATH", __DIR__.'/../storage/framework/pdf/');
define("_MPDF_TTFONTDATAPATH", __DIR__.'/../storage/framework/pdf/fonts/');

此外,我必须手动创建/pdf/pdf/fonts目录。

可能有一种更干净的方法可以做到这一点,但这是一个快速解决方案。

是否为以下文件夹设置了权限?

    /
  • ttfontdata/
  • /.tmp/
  • /graph_cache/

以下是如何安装的指南:http://mpdf1.com/manual/index.php?tid=509