我正在使用pdflib
在pdf
中动态创建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那里得到的信息,当您使用inmemory
或tempdirname
时,您需要为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/