文件上传和下载示例
以下是一个完整的文件上传和下载示例:
代码语言:javascript复制<!-- 文件上传表单 -->
<form action="upload.php" method="post" enctype="multipart/form-data">
<input type="file" name="file">
<input type="submit" value="Upload">
</form>
<!-- 文件下载链接 -->
<a href="download.php?file=example.pdf">Download example.pdf</a>
代码语言:javascript复制// upload.php - 文件上传处理
if ($_FILES['file']['error'] == UPLOAD_ERR_OK) {
$name = $_FILES['file']['name'];
$tmp_name = $_FILES['file']['tmp_name'];
move_uploaded_file($tmp_name, "uploads/$name");
echo "File uploaded successfully.";
} else {
echo "File upload failed.";
}
// download.php - 文件下载处理
$file = $_GET['file'];
if (isset($file)) {
$path = "uploads/$file";
if (file_exists($path)) {
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename=' . basename($path));
header('Content-Length: ' . filesize($path));
readfile($path);
exit;
} else {
echo "File not found.";
}
}
在上面的示例中,我们首先创建一个文件上传表单,用户可以通过该表单上传文件。在表单中,我们将表单的 action
属性设置为 upload.php
,这是一个处理文件上传的 PHP 文件。
然后,我们创建一个文件下载链接,用户可以通过该链接下载文件。在链接中,我们将要下载的文件名作为 URL 参数传递给 download.php
文件。在 download.php
文件中,我们首先检查 URL 参数是否存在,并验证要下载的文件是否存在。如果文件存在,我们设置响应头,并输出文件内容。如果文件不存在,则输出错误消息。
注意,在上面的示例中,我们将上传的文件保存在 uploads
目录中。为了确保安全,我们应该将上传的文件保存在非 Web 可访问的目录中,并限制用户对该目录的访问权限。