【发布时间】:2023-12-02 16:41:01
【问题描述】:
$dir = "temp/docx";
$errors = array();
$zip = new ZipArchive;
if($zip->open($file_path) === false){
$errors[] = 'Failed to open file';
}
if (empty($errors)) {
$zip->extractTo($dir,"word/document.xml");
$zip->close();
$files = scandir($dir);
print_r($files);
好的,基本上由于某种原因提取不起作用。在看到文件夹为空后,我决定做一个 scandir 来查看它们是否在 php 完成后被删除。没有什么。 $files 变量不输出任何内容(当然除了 .. 和 .)。
zip 实际上是一个 docx 文件,在明确检查错误后,php 似乎认为 zip_open 有效,但我不确定这是否只是误报。
我想知道这是否是因为这实际上是一个 docx 文件,我需要将其显式保存为服务器上的 zip 文件。或者可能是因为这在上传后直接发生并且临时文件在能够对其执行任何操作之前被删除(我认为这不太可能,因为其他格式也可以正常工作)。也许我的两个假设都不接近,或者我有可能把整件事都写错了。有什么帮助吗?
【问题讨论】:
标签: php upload zip extract docx