从Linux命令行检查有效的docx

时间:2018-10-18 11:24:51

标签: php linux bash docx libreoffice

我在php脚本中生成docx文件,但有时它们已损坏。服务器不知道这一点,它会将docx文件返回给用户,他发现该文件已损坏,从而造成非常糟糕的体验。

有人可以解决docx损坏的问题吗?因此,我可以变得更有弹性,尝试对其进行修复或对用户做出适当的回应。

现在我正在尝试:

libreoffice --headless --convert-to html corrupted.docx 

但是,如果文件没有损坏,在大多数情况下,它将增加响应时间。

您可以使用this corrupted file

进行调试

1 个答案:

答案 0 :(得分:1)

您可以调用PHP脚本,以PHPWord打开文档,该文档可以报告失败的成功信息。参见此example

include_once 'Sample_Header.php';

// Read contents
$name = basename(__FILE__, '.php');
$source = __DIR__ . "/resources/{$name}.docx";
echo date('H:i:s'), " Reading contents from `{$source}`", EOL;
$phpWord = \PhpOffice\PhpWord\IOFactory::load($source);

return $phpWord instanceof PhpOffice\PhpWord\PhpWord;