PHP 面试题 目录

PHP 中如何进行文件下载?

推荐答案

在PHP中,可以通过以下步骤实现文件下载:

  1. 设置HTTP头信息,指定文件的MIME类型和下载方式。
  2. 读取文件内容并输出到浏览器。
-- -------------------- ---- -------
-----
----- - ------------------------ -- ----
--------- - ---------------------- -- ---------

-- -------------------- -
    ---------------------------- ---- -----------
    --------------------- ---------------------------
    ---------------------------- ----------- ----------- - --------- - -----
    ---------------- ----
    ---------------------- ------------------
    --------------- ---------
    ----------------------- - - -----------------
    ----------------
    -----
- ---- -
    ---- ---------
-
--

本题详细解读

1. 设置HTTP头信息

  • Content-Description: File Transfer:描述内容为文件传输。
  • Content-Type: application/octet-stream:指定文件的MIME类型为二进制流,适用于所有文件类型。
  • Content-Disposition: attachment; filename="downloaded_file.ext":指定文件以附件形式下载,并设置下载时显示的文件名。
  • Expires: 0:设置缓存过期时间为0,确保文件不会被缓存。
  • Cache-Control: must-revalidate:强制浏览器重新验证缓存。
  • Pragma: public:允许公共缓存。
  • Content-Length: filesize($file):指定文件的大小。

2. 读取文件内容并输出

  • readfile($file):读取文件内容并输出到浏览器。这个函数会自动处理文件读取和输出,适用于大文件下载。

3. 文件存在性检查

  • file_exists($file):在尝试下载文件之前,检查文件是否存在。如果文件不存在,输出错误信息。

4. 退出脚本

  • exit:在文件下载完成后,立即退出脚本,避免后续代码执行影响下载。
纠错
反馈