从 linux 命令行检查有效的 docx

Posted

技术标签:

【中文标题】从 linux 命令行检查有效的 docx【英文标题】:check valid docx from linux command line 【发布时间】:2018-10-18 11:24:51 【问题描述】:

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

如果 docx 已损坏,是否有人有解决方案来检查 linux cli?所以我可以更有弹性,尝试修复它或对用户做出适当的回应。

现在我正在尝试:

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

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

你可以用this corrupted file调试

【问题讨论】:

我认为你可以编写 shell 脚本来检查文档是否损坏。 【参考方案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;

【讨论】:

以上是关于从 linux 命令行检查有效的 docx的主要内容,如果未能解决你的问题,请参考以下文章

怎么在Linux命令行下转换doc文件到pdf格式

入门:如何从Linux命令行直接执行MySQL/MariaDB查询

如何通过Linux命令行使用和运行PHP脚本

在 Linux 命令行上检查 postgresql jdbc 驱动程序版本的命令是啥?

在 Windows 7 上,Libreoffice 命令行在打开 DOCX 或转换为 PDF 时崩溃

15个例子掌握Linux命令行历史