PHP-下载文件的正确标题是什么?

PHP-下载文件的正确标题是什么?,php,header,download,Php,Header,Download,我有一段代码,允许用户从服务器下载文件(文档,如docs、docx、pdf等) 用户可以下载文件,但它有一些错误,如文件被破坏。例如,下载后的MS Word文件需要恢复才能读取内容 我想知道这段代码是否有错误(或者上传时有问题?) 你试过这样做吗 <?php header("Content-type: application/vnd.ms-word"); header("Content-Disposition: attachment; Filename=SaveAsWord

我有一段代码,允许用户从服务器下载文件(文档,如docs、docx、pdf等)

用户可以下载文件,但它有一些错误,如文件被破坏。例如,下载后的MS Word文件需要恢复才能读取内容

我想知道这段代码是否有错误(或者上传时有问题?)


你试过这样做吗

<?php
    header("Content-type: application/vnd.ms-word");
    header("Content-Disposition: attachment; Filename=SaveAsWordDoc.doc");
?>


我找到了问题的根源,在php close标记后我有一些额外的空格。谢谢大家。

您可以尝试根据文件类型生成内容类型,而不是始终使用“八位字节流”。另一个注释:尝试删除“文件传输”标题。我已经在几个项目中完成了您想要的,但我从未使用过这样的标题。您的readfile()方法是否打印文件的内容?您应该使用echo()命令编写它们。@belgther-readfile()始终将文件内容打印到标准输出。回到问题上来,也许你们在读取文件之前打印了一些东西(空格、换行符等),它会破坏下载的文件?这可能是因为恢复后文件正常。@piotrekkr我找到了问题的根源,在php关闭标记后我有一些额外的空格。我找到了问题的根源,在php关闭标记后我有一些额外的空格。
<?php
    header("Content-type: application/vnd.ms-word");
    header("Content-Disposition: attachment; Filename=SaveAsWordDoc.doc");
?>