在 php 中通过浏览器下载 docx / doc 文件
Downloading docx / doc files via browser in php
拜托,我是 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
应该是服务器上存在的文件的完整路径,而不仅仅是名称。它应该位于该路径上。我认为,在您的情况下,问题是服务器上不存在该文件。
拜托,我是 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
应该是服务器上存在的文件的完整路径,而不仅仅是名称。它应该位于该路径上。我认为,在您的情况下,问题是服务器上不存在该文件。