我正在使用 pdflib
在 PHP
中动态创建 pdf
文档,但出于某种原因,我收到的错误消息是这样的
Error: Couldn't open PDF file 'MJVQKFFGFEPBI.TMP' for writing (permission denied)
触发该行的错误是这样的
if (!pdf_begin_document($this->p, $this->output_file, ($linearize ? 'linearize' : ''))) die('Error: ' . pdf_get_errmsg($this->p));
我的问题是如何获取权限被拒绝的目录的位置,或者此错误是否由任何其他原因触发?
相同的代码在我的服务器 ubuntu 12.04
中有效,但在 12.10
中无效
最佳答案
我刚从 PDFlib 的 Rainer Plöckl 那里得到信息,您需要为 begin_document
指定 inmemory
和/或 tempdirname
选项> 当您使用 linearize
或 optimize
时。默认情况下,pdflib 尝试在当前目录中打开一个临时文件,网络服务器用户可能无权在其中创建新文件。
我在 optimize
中遇到了同样的问题,并通过使用以下代码规避了该问题:
pdf_begin_document($this->p, '', 'optimize=true tempdirname=' . sys_get_temp_dir());
之后一切正常。
您可以在 http://www.pdflib.com/fileadmin/pdflib/pdf/manuals/PDFlib-9.0.4-API-reference.pdf#page=48 找到文档的相关部分
关于php - 错误 : Couldn't open PDF file 'MJVQKFFGFEPBI.TMP' for writing (permission denied),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16038200/