我从网络服务器下载的.docx文件有一个奇怪的问题。 当我尝试打开下载的文档时,我收到了损坏的文件错误。
当我尝试手动下载文件时(通过FileZilla),我可以毫无问题地打开它们。
$targetFile = ASSETS . "/tmp/{$filename}.{$extension}";
ob_clean();
$phpWord->save($targetFile,$format,false);
if(headers_sent())
{
echo 'http header already sent';die();
}
else{
if (!is_file($targetFile)) {
header($_SERVER['SERVER_PROTOCOL'].' 404 Not Found');
echo 'File not found';die();
} else if (!is_readable($targetFile)) {
header($_SERVER['SERVER_PROTOCOL'].' 403 Forbidden');
echo 'File not readable';die();
} else {
header("Content-Description: File Transfer");
header("Content-Disposition: attachment; filename=".$filename.".".$extension."");
header("Content-Type: application/vnd.openxmlformats-officedocument.wordprocessingml.document");
header("Content-Transfer-Encoding: binary");
header('Connection: Keep-Alive');
header('Expires: 0');
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Pragma: public');
header("Content-Length: ".filesize($targetFile));
set_time_limit(0);
readfile($targetFile);
exit();
}
}
同样在localhost上运行代码也可以,我可以毫无问题地打开文件。
我观察到的一件事是,当我通过我的代码下载时,下载的文档大小不足1 kb,因此我假设某些内容丢失,但似乎无法找到问题。
我可以看到许多人有类似的问题,我尝试了那些建议的解决方案,但没有运气。
有什么想法吗?