<!DOCTYPE html>
<html>
<head>
<meta charset="gb2312">
<title>Word 檔案上傳</title>
</head>
<body>
<form action="receivefile.php" method="post" enctype="multipart/form-data">
<input type="file" name="filename" accept=".doc,.docx">
<input type="submit" value="上傳並轉換">
</form>
</body>
</html>
<?php
// 資料庫連線(範例使用 Access,實務建議改用 MySQL/PDO)
$conn = new COM("ADODB.Connection");
$connStr = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" . realpath("person.mdb");
$conn->Open($connStr);
// 上傳目錄
$uploadDir = 'uploads/';
if (!is_dir($uploadDir)) mkdir($uploadDir, 0755, true);
// 處理檔名(移除副檔名)
$originalName = $_FILES['filename']['name'];
$baseName = pathinfo($originalName, PATHINFO_FILENAME);
$ext = pathinfo($originalName, PATHINFO_EXTENSION);
$saveName = $baseName . '.' . $ext;
$savePath = $uploadDir . $saveName;
// 移動暫存檔
move_uploaded_file($_FILES['filename']['tmp_name'], $savePath);
// 呼叫 Word COM 元件轉換
$htmlPath = $savePath; // 輸出 HTML 同目錄
word2html($htmlPath);
function word2html($wFilePath) {
$word = new COM("Word.Application") or die("無法啟動 MS Word");
$word->Visible = 0; // 背景執行
$word->Documents->Open($wFilePath) or die("無法開啟文件");
$htmlPath = substr($wFilePath, 0, -4) . '.html'; // 替換副檔名
$word->ActiveDocument->SaveAs($htmlPath, 8); // 8 = wdFormatHTML
$word->Quit(0);
// 釋放 COM 物件
unset($word);
}
echo "Word 轉 HTML 完成!輸出檔案:$htmlPath";
?>
com.allow_dcom,僅限 Windows 環境Linux 環境推薦使用 libreoffice --headless --convert-to html 呼叫命令列轉換,或採用 PhpOffice/PHPWord 純 PHP 解析(功能有限)。