在php中通过浏览器下载docx/doc文件

在php中通过浏览器下载docx/doc文件,php,download,header,http-headers,docx,Php,Download,Header,Http Headers,Docx,请告诉我,我是新来的php,我一直无法找出为什么这段代码不工作。我试着下载这个docx文件,但是它下载了这个文件,但是当我打开文件时,文件上什么也没有显示。它是空的。我相信该文件已损坏,这是由于代码。代码如下: <?php if(isset($_POST['file_name'])) { $file = $_POST['file_name']; echo $file; header('Content-Description

请告诉我,我是新来的php,我一直无法找出为什么这段代码不工作。我试着下载这个docx文件,但是它下载了这个文件,但是当我打开文件时,文件上什么也没有显示。它是空的。我相信该文件已损坏,这是由于代码。代码如下:

<?php
    if(isset($_POST['file_name']))
    {

        $file = $_POST['file_name'];
        echo $file;

        header('Content-Description: File Transfer');
        header('Content-Type: application/vnd.openxmlformats-officedocument.wordprocessingml.document');
        header('Content-Disposition: attachment; filename='.$file.'');
        header('Content-Transfer-Encoding: binary');
        header('Expires: 0');
        header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
        header('Pragma: public');
        header('Content-Length: ' . filesize($file));
        ob_clean();
        flush();
        readfile('resumeFolder/'.$file);
        exit(); 
    }
?>
<form action="force_download.php" method="post" name="downloadform">
  <input name="file_name" value=" Aunt_CC_Letter.docx" type="hidden">
  <input type="submit" value="Download the MP3">
</form>


$file
当前仅保存文件名。在
readfile($file)
中,
$file
应该是服务器上存在的文件的完整路径,而不仅仅是名称。它应该位于这条路径上。我认为,在您的情况下,问题在于服务器上不存在该文件。

能否将目录结构写入该文件?请尝试使用readfile('./resumeFolder/'.$file);如果resumeFolder在你的根目录下,它在根目录下,我仍然尝试了,但它不起作用。你有一个在某处有效的例子吗?