通过PHP强制下载docx文件

通过PHP强制下载docx文件,php,download,docx,Php,Download,Docx,我知道有很多人提到这一点,但我尝试了所有的建议,似乎没有任何效果 我有这个脚本来强制下载文件,但当使用docx格式时,它可以下载,但随后说文件已损坏。但是word确实可以打开它 有人知道为什么docx会一直说那里腐败吗。我已经通过ftp从服务器上再次检查了它们,它们很好,第一次就打开了 $documentDir = '/home/'; $file = $_GET['d']; $fileLocation = $documentDir.$file; header('Content-type: app

我知道有很多人提到这一点,但我尝试了所有的建议,似乎没有任何效果

我有这个脚本来强制下载文件,但当使用docx格式时,它可以下载,但随后说文件已损坏。但是word确实可以打开它

有人知道为什么docx会一直说那里腐败吗。我已经通过ftp从服务器上再次检查了它们,它们很好,第一次就打开了

$documentDir = '/home/';
$file = $_GET['d'];
$fileLocation = $documentDir.$file;
header('Content-type: application/octet-stream');
header('Content-Length: ' . filesize($fileLocation)); 
header('Content-disposition: attachment; filename="'.$file.'"');
readfile($fileLocation);
exit(0);

您可以尝试修改处置行并添加编码行,以确保编码正确完成

header ("Content-Disposition: attachment; filename*=UTF-8'en'$file");
header('Content-Transfer-Encoding: binary');

这个脚本适合我

您确定所有文档都位于
/home/
中吗

你不是指相对路径
home/


如果这仍然不起作用,请告诉我下载的docx的大小,然后在文本编辑器(如sublime_text)中打开该文件,错误可能会写入其中。

谢谢,但这没有什么区别。这是否适用于其他文件?