2016-05-24 2 views
1

Я использую CodeIgniter 3 и mPDF для создания PDF-файлов. В моем контроллере мне нужно указать путь к файлу для хранения pdf-файлов.Как сохранить файл PDF с mPDF и CodeIgniter

На данный момент этот фрагмент кода работает хорошо для меня на моем локальном сервере:

$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 

Любое решение, которое может работать как на локальном и производственном сервере?

+0

Какова ценность '$ _SERVER ['DOCUMENT_ROOT']' в локальном и каково его ожидаемое значение? Также укажите свои локальные и серверные операционные системы. –

+0

Вы используете apache? – sintakonte

+0

Моя локальная платформа разработки - PHP 5.6.20 + Apache на Synology Disk Station (DSM 6.0) – Tikky

ответ

1

Возможно, вам удастся исправить это с помощью какого-либо утверждения if или что-то в этом роде, но в CI есть еще одна интересная функция.

В большинстве случаев у вас, вероятно, есть несколько настроек конфигурации, которые отличаются между производством, тестированием и разработкой. По этой причине в Codeigniter есть возможность загрузить различные значения конфигурации в зависимости от среды, в которой работает ваша платформа.

если вы используете апача - активировать SetEnvIf (если он уже itsn't)

Положить в HTAccess что-то вроде

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

После этого просто создать в вашем приложении/Config/папки три папки названная разработка, тестирование и производство Если вы поместите свои файлы конфигурации в эти папки - ci обратится к нему в зависимости от вашей текущей рабочей среды

, пожалуйста, следуйте CI Documentation для f Дополнительная информация