文件上传和下载是 Web 开发中常见的操作,PHP 提供了丰富的函数和类来实现文件上传和下载功能。下面是一个简单的教程,来详细介绍如何使用 PHP 实现文件上传和下载功能。

文件上传

1. 创建文件上传表单

首先,我们需要在 HTML 文件中创建一个文件上传表单。例如:

<form action="upload.php" method="post" enctype="multipart/form-data">
    <input type="file" name="file">
    <input type="submit" value="上传文件">
</form>

2. 处理文件上传

接下来,我们需要创建一个 PHP 文件(例如 upload.php)来处理文件上传。在文件中使用 $_FILES 超全局数组来获取上传文件的信息,并将文件移动到指定的目录。

<?php
$targetDir = "uploads/";
$targetFile = $targetDir . basename($_FILES["file"]["name"]);

if (move_uploaded_file($_FILES["file"]["tmp_name"], $targetFile)) {
    echo "文件上传成功";
} else {
    echo "文件上传失败";
}
?>

文件下载

1. 创建文件下载链接

在 HTML 文件中创建一个下载链接,指向一个 PHP 文件(例如 download.php),并传递要下载的文件名参数。

<a href="download.php?file=example.txt">下载文件</a>

2. 处理文件下载

download.php 文件中,我们需要读取指定的文件并将其输出到浏览器。

<?php
$filePath = "uploads/" . $_GET['file'];

if (file_exists($filePath)) {
    header('Content-Description: File Transfer');
    header('Content-Type: application/octet-stream');
    header('Content-Disposition: attachment; filename="' . basename($filePath) . '"');
    readfile($filePath);
    exit;
} else {
    echo "文件不存在";
}
?>

以上就是一个简单的文件上传和下载操作的 PHP 教程。在实际应用中,我们还可以加入一些安全性检查,例如限制文件大小、文件类型等,以提高系统的安全性。