mpdf更改临时路径(composer包)

时间:2014-12-17 18:01:30

标签: php laravel permissions mpdf

我已经通过作曲家安装了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只是不会使用我指定的临时文件夹

2 个答案:

答案 0 :(得分:5)

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

我将其添加到/bootstrap/autoload.php文件的顶部:

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

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

可能有一种更简洁的方法,但这是一个快速解决方法。

答案 1 :(得分:1)

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

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

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