php - 从 linux 命令行检查有效的 docx
问题描述
我在 php 脚本中生成 docx 文件,但有时它们已损坏。服务器不知道这一点,它将 docx 文件返回给用户,他发现它已损坏,造成非常糟糕的体验。
如果 docx 已损坏,是否有人有解决方案来检查 linux cli?所以我可以更有弹性,尝试修复它或给用户一个适当的回应。
到目前为止,我正在尝试:
libreoffice --headless --convert-to html corrupted.docx
但是如果文件没有损坏,大多数情况下,它会增加响应时间。
您可以使用这个损坏的文件进行调试
解决方案
您可以调用一个 PHP 脚本,使用PHPWord打开文档,该脚本可以报告成功或失败。看这个例子:
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;
推荐阅读
- css - SVG 的绝对定位导致内部路径元素移动到其包含元素之外
- vuejs2 - 使用线条绘制拖动后,鼠标上移检测未按预期工作
- jquery - TypeError:无法读取未定义的属性“onload”
- jquery - 如何在jquery中强调现有的内部html?
- python - 如何减小字符分隔字符串的大小?
- algorithm - 不懂伪代码:(Q[i] = j + r - i) 或 (Q[i] = j - r + i)
- typescript - tsconfig 路径和桶文件/相同目录导入的嵌套依赖项解析问题
- kubernetes - 设置不允许使用 UDP 的 kubernetes
- azure-application-insights - AppInsights 采样始终或更频繁地包括慢速调用
- python - 在 xlsxwriter 中格式化 pandas 数据框重复工作表名称