利用PHP函数进行文件上传与下载操作
发布时间:2023-07-01 22:53:18
PHP提供了一系列函数用于实现文件上传和下载操作,可以通过这些函数来实现文件的上传和下载功能。
文件上传:
PHP提供了move_uploaded_file()函数用于将上传的文件移动到指定位置。
示例代码如下:
<?php
$target_dir = "uploads/"; // 文件上传目录
$target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]); // 上传的文件路径
$uploadOk = 1; // 上传状态,默认为1
// 检查文件是否已经存在
if (file_exists($target_file)) {
echo "文件已存在!";
$uploadOk = 0;
}
// 检查文件大小限制
if ($_FILES["fileToUpload"]["size"] > 500000) {
echo "文件过大!";
$uploadOk = 0;
}
// 检查文件格式
$allowed_extensions = array("jpg", "jpeg", "png", "gif");
$file_extension = strtolower(pathinfo($target_file, PATHINFO_EXTENSION));
if (!in_array($file_extension, $allowed_extensions)) {
echo "不支持的文件格式!";
$uploadOk = 0;
}
// 检查上传状态并移动文件
if ($uploadOk == 0) {
echo "文件上传失败!";
} else {
if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file)) {
echo "文件上传成功!";
} else {
echo "文件上传失败!";
}
}
?>
文件下载:
使用PHP的header()函数来设置响应头,然后通过readfile()函数读取文件内容并输出到浏览器。
示例代码如下:
<?php
$file = 'path/to/file.pdf'; // 要下载的文件路径
$filename = 'file.pdf'; // 下载时显示的文件名
// 设置响应头
header("Content-type: application/octet-stream");
header("Content-Disposition: attachment; filename=\"$filename\"");
// 读取文件并输出到浏览器
readfile($file);
?>
通过上述代码,我们可以实现文件的上传和下载功能。在文件上传过程中,我们可以检查文件是否已经存在、文件大小限制和文件格式等,确保上传的文件符合要求;在文件下载时,我们可以设置响应头并输出文件内容到浏览器,使用户能够下载该文件。
