PHP实现文件上传下载实例

关于“PHP实现文件上传下载实例”的完整攻略,我将从以下几个方面进行讲解:

关于“PHP实现文件上传下载实例”的完整攻略,我将从以下几个方面进行讲解:

  1. 文件上传

  2. 文件下载

  3. 完整示例

1. 文件上传

文件上传功能是网站中常见的功能之一。借助PHP的$_FILES全局变量,可以轻松实现文件上传功能。以下是代码实现示例:

<?php
if(isset($_FILES['file'])) {
    $file = $_FILES['file'];
    $fileName = $file['name'];
    $fileTemp = $file['tmp_name'];
    $fileSize = $file['size'];
    $fileType = $file['type'];

    // 将上传的文件保存到指定目录
    $destPath = 'uploads/' . $fileName;
    move_uploaded_file($fileTemp, $destPath);

    echo '文件上传成功!';
}
?>

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

上述代码实现了一个简单的文件上传功能,通过HTML中的<input type="file">元素实现选择文件,点击提交按钮后,通过PHP的move_uploaded_file函数将文件保存到指定目录中。

2. 文件下载

文件下载功能也是网站中常见的功能之一。通过PHP的readfile函数,可以将服务器上的文件以下载方式提供给用户。以下是代码实现示例:

<?php
$file = 'uploads/example.xlsx';

if (file_exists($file)) {
    header('Content-Description: File Transfer');
    header('Content-Type: application/vnd.ms-excel');
    header('Content-Disposition: attachment; filename="' . basename($file) . '"');
    header('Content-Transfer-Encoding: binary');
    header('Expires: 0');
    header('Cache-Control: must-revalidate');
    header('Pragma: public');
    header('Content-Length: ' . filesize($file));
    ob_clean();
    flush();
    readfile($file);
    exit;
} else {
    echo '文件不存在!';
}
?>

上述代码通过检查文件是否存在,如果文件存在,则通过header函数设置一系列响应头,告知浏览器当前请求是一个文件下载请求,且文件名为指定的文件名。然后通过readfile函数将文件以二进制流的方式输出到客户端。

3. 完整示例

接下来,我们将以上两个功能整合到一起,构建一个完整的文件上传和下载实例。以下是代码实现示例:

<?php
if (isset($_FILES['file'])) {
    $file = $_FILES['file'];
    $fileName = $file['name'];
    $fileTemp = $file['tmp_name'];
    $fileSize = $file['size'];
    $fileType = $file['type'];

    $destPath = 'uploads/' . $fileName;
    move_uploaded_file($fileTemp, $destPath);

    echo '文件上传成功!<br><br>';
}

$file = 'uploads/example.xlsx';

if (file_exists($file)) {
    echo '下载文件:<a href="download.php">example.xlsx</a> <br><br>';
} else {
    echo '文件不存在!<br><br>';
}
?>

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

在以上完整示例中,当用户上传文件后,程序会将文件保存到指定目录,并提示用户上传成功。然后在页面中提供一个下载链接,用户可以点击链接下载刚刚上传的文件。

本文标题为:PHP实现文件上传下载实例

基础教程推荐