从 linux 命令行检查有效的 docx

check valid docx from linux command line

我在 php 脚本中生成 docx 文件,但有时它们已损坏。服务器不知道,它 returns 向用户提供 docx 文件,他发现它已损坏,造成非常糟糕的体验。

有人有办法在 docx 损坏时检查 linux cli 吗?所以我可以更有弹性,尝试修复它或给用户一个适当的回应。

现在我正在试验:

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

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

您可以使用 this corrupted file

进行调试

您可以调用 PHP 脚本打开文档 PHPWord which can report on success for failure. See this 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;