You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在PHP中获取Word文档的文件名并存入数据库?

获取Word文档文件名并存入数据库的解决方案

看起来你混淆了文档元数据和文件系统文件名的区别——Word文档的内部元数据(就是你用$docxmeta读取的关键词、作者这类信息)里默认不包含它在文件系统里的文件名,所以$docxmeta->getFileName()自然没法生效。文件名是存储在文件系统层面的,得从你加载文档时的路径/上传信息里提取。

下面给你几种常见场景的解决方案:

1. 从本地文件系统加载文档的情况

假设你是通过固定路径加载文档的,比如:

$filePath = '/path/to/your/example.docx'; // 替换成你的文档实际路径
$docx = \PhpOffice\PhpWord\IOFactory::load($filePath);
$docxmeta = $docx->getDocInfo();

直接用PHP内置的basename()函数提取文件名:

// 获取带扩展名的完整文件名(比如"example.docx")
$Filename = basename($filePath);

// 若需要不带扩展名的文件名,可添加第二个参数:
$FilenameWithoutExt = basename($filePath, '.docx');

2. 通过表单上传文档的情况

如果是用户通过HTML表单上传文件,文件名存在$_FILES数组里:

// 假设表单文件输入框的name属性为"word_document"
if ($_FILES['word_document']['error'] === UPLOAD_ERR_OK) {
    // 获取上传的原始文件名(比如"report.docx")
    $Filename = $_FILES['word_document']['name'];
    // 临时文件路径,用于加载文档
    $tempFile = $_FILES['word_document']['tmp_name'];
    
    // 加载文档并读取关键词
    $docx = \PhpOffice\PhpWord\IOFactory::load($tempFile);
    $docxmeta = $docx->getDocInfo();
    $Keywords = $docxmeta->getKeywords();
    
    // 将文件名和关键词存入数据库(以PDO为例)
    $pdo = new PDO('mysql:host=localhost;dbname=your_db', 'username', 'password');
    $stmt = $pdo->prepare("INSERT INTO your_table (filename, keywords) VALUES (?, ?)");
    $stmt->execute([$Filename, $Keywords]);
}

为什么$docxmeta->getFileName()不生效?

大多数处理Word文档的PHP库(比如PHPWord、phpdocx)的元数据对象,只会读取文档内部的内置属性(作者、标题、关键词、创建时间等)。而文件名是文件在系统中的标识,不属于文档本身的内容,所以这类库不会提供获取文件名的方法。

结合你现有的代码,整合后的示例如下:

// 定义文档路径
$filePath = '/var/www/docs/annual_report.docx';

// 加载文档并读取关键词
$docx = \PhpOffice\PhpWord\IOFactory::load($filePath);
$docxmeta = $docx->getDocInfo();
$Keywords = $docxmeta->getKeywords();
echo "Keywords : " . $Keywords . "<br>";

// 获取文件名
$Filename = basename($filePath);
echo "Filename : " . $Filename . "<br>";

// 存入数据库(替换为你自己的数据库操作逻辑)
// $yourDbConnection->query("INSERT INTO your_table (filename, keywords) VALUES ('$Filename', '$Keywords')");

内容的提问来源于stack exchange,提问作者Joe Smith

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 09:35:54