引言在Web开发中,文件的上传和下载是常见的功能需求。PHP作为一门流行的服务器端脚本语言,提供了丰富的功能来处理文件上传和下载。本文将详细介绍PHP文件上传和下载的基本技巧,帮助您轻松掌握这些功能,...
在Web开发中,文件的上传和下载是常见的功能需求。PHP作为一门流行的服务器端脚本语言,提供了丰富的功能来处理文件上传和下载。本文将详细介绍PHP文件上传和下载的基本技巧,帮助您轻松掌握这些功能,告别小白烦恼。
首先,我们需要创建一个HTML表单,用于上传文件。以下是一个简单的表单示例:
<form action="upload.php" method="post" enctype="multipart/form-data"> 选择文件:<input type="file" name="file"> <input type="submit" value="上传">
</form>在服务器端,我们需要编写PHP代码来处理上传的文件。以下是一个简单的示例:
<?php
if ($_SERVER['REQUEST_METHOD'] == 'POST') { if (isset($_FILES['file'])) { $file = $_FILES['file']; $file_name = $file['name']; $file_tmp_name = $file['tmp_name']; $file_size = $file['size']; $file_error = $file['error']; // 检查文件是否有错误 if ($file_error === 0) { // 检查文件大小 if ($file_size <= 5000000) { // 允许的文件类型 $file_ext = strtolower(end(explode('.', $file_name))); $allowed_exts = array('jpg', 'jpeg', 'png', 'gif', 'pdf'); if (in_array($file_ext, $allowed_exts)) { // 重命名文件 $file_new_name = uniqid('', true) . '.' . $file_ext; // 移动文件到指定目录 $move = move_uploaded_file($file_tmp_name, "uploads/" . $file_new_name); if ($move) { echo "文件上传成功!"; } else { echo "文件上传失败!"; } } else { echo "文件类型不允许!"; } } else { echo "文件过大!"; } } else { echo "文件上传出错!"; } } else { echo "没有文件被上传!"; }
}
?>enctype="multipart/form-data"属性来确保表单可以上传文件。$_FILES数组来获取上传的文件信息。move_uploaded_file()函数将文件从临时目录移动到指定目录。首先,我们需要创建一个下载链接,用于触发文件下载。以下是一个简单的示例:
<a href="download.php?file=example.pdf">下载文件</a>在服务器端,我们需要编写PHP代码来处理文件下载。以下是一个简单的示例:
<?php
$file_name = "example.pdf";
$file_path = "uploads/" . $file_name;
if (file_exists($file_path)) { header('Content-Description: File Transfer'); header('Content-Type: application/octet-stream'); header('Content-Disposition: attachment; filename="' . basename($file_name) . '"'); header('Expires: 0'); header('Cache-Control: must-revalidate'); header('Pragma: public'); header('Content-Length: ' . filesize($file_path)); ob_clean(); flush(); readfile($file_path); exit;
} else { echo "文件不存在!";
}
?>header()函数发送HTTP头信息,指定文件下载的相关参数。readfile()函数读取文件内容并发送给客户端。通过本文的介绍,相信您已经掌握了PHP文件上传和下载的基本技巧。在实际开发中,请根据具体需求调整代码,确保文件的安全和稳定。祝您在Web开发中一切顺利!