当前位置: 首页> 最新文章列表> PHP后端文件上传与下载完整实现教程

PHP后端文件上传与下载完整实现教程

M66 2025-06-11

如何在PHP后端实现文件上传与下载?

在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. 编写upload.php处理上传请求

在upload.php中,使用$_FILES超全局变量获取上传文件信息,并将文件从临时目录移动到指定位置:

<?php
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
  $file = $_FILES['file'];
<p>// 获取文件名<br>
$filename = $file['name'];</p>
<p>// 获取临时路径<br>
$tmp_path = $file['tmp_name'];</p>
<p>// 指定保存路径<br>
$save_path = 'uploads/' . $filename;</p>
<p>// 将文件移动到目标目录<br>
move_uploaded_file($tmp_path, $save_path);</p>
<p>echo '文件上传成功!';<br>
}<br>
?><br>

3. 创建保存文件的目录

确保服务器上有用于存放上传文件的目录,否则上传操作会失败。可以用以下代码检查并创建目录:

<?php
if (!file_exists('uploads')) {
  mkdir('uploads', 0777, true);
}
?>

二、文件下载

文件下载是指将服务器上的文件传输到用户的本地。PHP通过设置HTTP头实现文件的安全下载。

1. 编写download.php实现文件下载

在download.php中,指定文件路径,判断文件是否存在,然后设置响应头并输出文件内容:

<?php
$file_path = 'files/document.pdf';
<p>if (file_exists($file_path)) {<br>
header('Content-Description: File Transfer');<br>
header('Content-Type: application/octet-stream');<br>
header('Content-Disposition: attachment; filename=' . basename($file_path));<br>
header('Content-Length: ' . filesize($file_path));<br>
header('Pragma: public');<br>
header('Expires: 0');</p>
<p>readfile($file_path);<br>
exit;<br>
} else {<br>
die('文件不存在!');<br>
}<br>
?><br>

2. 准备可下载的文件

确保指定的下载文件存在于服务器的相应目录下,否则用户将无法成功下载。

三、总结

本文系统地介绍了PHP后端实现文件上传与下载的关键步骤。通过$_FILES获取上传文件信息,利用move_uploaded_file保存文件,以及通过设置HTTP响应头实现文件下载。示例代码简单易懂,适合初学者参考和应用。开发者可以根据实际需求进一步完善功能,提高项目的用户体验。