首页 > 解决方案 > 如何使用 PHP 从服务器下载文本文件?

问题描述

我有一个希望用户下载的 .txt 文件,我目前正在使用它:

header('Content-Description: File Transfer');
                        header('Content-Type: application/octet-stream');
                        header('Content-Disposition: attachment; filename="'.basename('file.txt');
                        header('Expires: 0');
                        header('Cache-Control: must-revalidate');
                        header('Pragma: public');
                        header('Content-Length: ' . filesize('file.txt'));
                        readfile('file.txt');
                        exit;

当我使用它下载文件时,文件的内容以在这部分脚本之前使用的所有 HTML 和 PHP 开头,例如

<!DOCTYPE html>

<html>
<head>
    <meta charset="UTF-8">

    <title>Title</title>
    <link rel="stylesheet" href="style.css">
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
</head>
<body>
.
.
.
Actual file contents

如何下载文件以便只有实际内容而不是代码?

标签: php

解决方案


更正了您的代码并检查 file.txt 是否存在。

header('Content-Type: application/octet-stream');
header('Content-Description: File Transfer');
header('Content-Disposition: attachment; filename="'.basename('file.txt'));
header('Expires: 0');
header('Cache-Control: must-revalidate');
header('Pragma: public');
header('Content-Length: ' . filesize('file.txt'));
readfile('file.txt');
exit;

推荐阅读