12

我很想提出一个很好的建议来解决以下问题。对于一个平台,我必须创建 php word 文档,而恰好在 Apache 开发环境中,这段代码可以完美执行;然而,在 nginx 平台上,我不断收到主题提示的错误:

ZipArchive::close(): Failure to create temporary file: Permission denied

构建非常简单:

$phpWord = new \PhpOffice\PhpWord\PhpWord();

//code block as in the documentation

$objWriter = \PhpOffice\PhpWord\IOFactory::createWriter($phpWord,'Word2007');

$objWriter->save('doorverwijzing_patient_xxxxxxxxxx.docx');

我在哪里更改 nginx 文件夹结构中的这些权限才能创建这些文档?

4

6 回答 6

5

有同样的问题发生在我身上,像 3 个小时试图解决只是发现问题不在代码中,问题出在我试图保存的文件的名称中。确保文件名没有特殊字符

于 2019-01-25T16:01:51.677 回答
3

似乎上传目录指向的是根文件夹。为安全起见,此文件夹没有外部写入权限。将存储文件夹更改为(符号链接) .private/upload/ 后,错误似乎已修复。

也许这可以帮助别人。

于 2016-11-30T21:16:33.933 回答
1

我收到此错误是因为我没有尝试写入的文件夹。

于 2020-01-22T11:24:42.083 回答
0

我通过保存文件的完整路径和一些权限解决了这个问题!像那样

$objWriter->save('/var/www/project/storage/documents/file.docx');

如果您使用 Laravel,只需使用public_path('storage/documents/file.docx');

最重要的是检查此文件夹的 www-data权限

我将 www-data 设为此文件夹“文档”的所有者

sudo chown –R www-data /var/www/project/storage/documents
于 2022-03-02T08:27:03.407 回答
0

我解决了这个错误,它是路径问题。

$objWriter->save('/your_project_folder/doorverwijzing_patient_xxxxxxxxxx.docx');

于 2020-04-02T06:42:52.947 回答
-16

请更改保存文件的目标目录的权限。该文件夹的权限必须是 0777,然后才能正常工作。

于 2017-06-14T04:13:15.147 回答