我正在使用pdflibpdf中动态创建PHP文档,但是由于某种原因,我收到的错误消息是这样的

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的RainerPlöckl那里得到的信息,当您使用inmemorytempdirname时,您需要为begin_document指定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 - 错误:无法打开PDF文件“MJVQKFFGFEPBI.TMP”进行写入(权限被拒绝),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16038200/

10-09 23:08