php - 错误 : Couldn't open PDF file 'MJVQKFFGFEPBI.TMP' for writing (permission denied)

标签 php ubuntu permissions pdflib

我正在使用 pdflibPHP 中动态创建 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 选项> 当您使用 linearizeoptimize 时。默认情况下,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/

相关文章:

php - 用于在 "-"之后选择值的正则表达式

php - 更新不起作用的 PHP MYSQL CRUD

c++ - 无法编译C++程序

ubuntu - 尝试运行 2 个 Kinect 时在 ubuntu 中出现 libusb 错误

ubuntu - 在 Nginx : 上运行 Siremis web

php - 检查数据库的权限,如果找不到则重定向

php - Zend-1048 列 'member_login' 不能为空

php - 如何在 PHP 中发出内存使用警告?

azure - Azure 文件的权限

android - 如何在运行时检查权限而不抛出 SecurityException?