如何使用mPDF和CodeIgniter保存PDF文件

时间:2016-05-24 10:13:06

标签: php file codeigniter codeigniter-3 mpdf

我正在使用CodeIgniter 3和mPDF来生成PDF文件。 在我的控制器中,我需要指定存储pdf文件的文件路径。

目前,这段代码在我的本地服务器上运行正常:

$pdfFilePath = FCPATH."/raports/invoice_".$data['nr'].".pdf";

然而,不适用于生产(托管服务器)。 当我绕过时,我已将FCPATH替换为$_SERVER['DOCUMENT_ROOT']

$pdfFilePath = $_SERVER['DOCUMENT_ROOT']."raports/invoice_".$data['nr'].".pdf";

此解决方案适用于生产(但不适用于我的本地服务器),因此每次我想上传新版本时,我都需要更改它。

错误消息显示:

Message: fopen(): open_basedir restriction in effect. 
fopen  failed to open stream: Operation not permitted

任何可以在本地和生产服务器上运行的解决方案吗?

1 个答案:

答案 0 :(得分:1)

您可能会通过某种if语句或类似方式来管理它,但CI中还有另一个很酷的功能。

在大多数情况下,您可能有多个配置设置,这些设置在生产,测试和开发之间是不同的。 因此,Codeigniter有可能根据您的平台运行环境加载不同的配置值。

如果您使用apache - 激活SetEnvIf(如果它还没有)

加入你的htaccess,比如

SetEnvIf Host localhost$ CI_ENV=development
SetEnvIf Host testhost$ CI_ENV=testing
SetEnvIf Host productionhost$ CI_ENV=production

之后只需在您的application / config /文件夹中创建三个名为开发,测试和生产的文件夹 如果您将不同的配置文件放在此文件夹中 - ci根据您当前的工作环境访问它

请按照CI Documentation了解更多信息