当前位置: 首页> 最新文章列表> 如何使用PHP函数实现文件上传与下载功能

如何使用PHP函数实现文件上传与下载功能

M66 2025-06-17

如何使用PHP函数实现文件上传与下载功能

在现代Web开发中,文件上传和下载是非常常见的功能。PHP提供了一些内置函数来帮助开发者处理文件操作,包括上传和下载。本文将详细介绍如何使用PHP函数进行文件上传和下载,并提供代码示例供参考。

一、文件上传

文件上传是将本地文件传输到服务器的过程。在PHP中,使用`move_uploaded_file()`和`$_FILES`全局变量来处理文件上传。

首先,确保HTML表单中包含一个文件上传的输入控件:

<form method="post" enctype="multipart/form-data">
    <input type="file" name="file">
    <input type="submit" value="Upload">
</form>
    

接着,在PHP代码中,使用`$_FILES`全局变量来获取上传的文件信息。`$_FILES`是一个关联数组,包含了文件的名称、类型、临时存储路径等信息。

if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    $file = $_FILES['file'];  // 获取文件信息
    $filename = $file['name'];  // 文件名
    $tmpPath = $file['tmp_name'];  // 临时文件路径

    // 上传文件
    $destination = 'uploads/' . $filename;
    move_uploaded_file($tmpPath, $destination);

    echo 'File uploaded successfully!';
}
    

在上述代码中,我们首先通过`$_FILES['file']`获取文件信息,然后使用`move_uploaded_file()`将临时文件移动到指定的目标路径。最后,通过`echo`语句输出上传成功的提示信息。

二、文件下载

文件下载是将服务器上的文件传输到客户端的过程。PHP中使用`readfile()`函数实现文件的下载。

以下是一个简单的文件下载示例:

$file = 'path/to/file.txt';  // 设置要下载的文件路径

if (file_exists($file)) {
    header('Content-Description: File Transfer');
    header('Content-Type: application/octet-stream');
    header('Content-Disposition: attachment; filename=' . basename($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));

    readfile($file);  // 输出文件内容
    exit;
} else {
    echo 'File not found!';
}
    

在此代码中,首先通过`file_exists()`检查文件是否存在。如果文件存在,设置相关的HTTP头信息(如文件类型、文件名和文件大小等),然后使用`readfile()`将文件内容输出到客户端。

需要注意的是,正确的设置HTTP头信息至关重要,特别是`Content-Type`和`Content-Disposition`,它们帮助浏览器正确解析文件并启动下载。

结语

本文介绍了如何使用PHP函数进行文件上传和下载。通过`$_FILES`全局变量和`move_uploaded_file()`函数,你可以轻松实现将文件从本地上传到服务器;通过设置合适的HTTP头信息和`readfile()`函数,可以将服务器上的文件成功下载到客户端。希望这些代码示例对你的开发有所帮助。