实现文件上传和下载功能的PHP函数
发布时间:2023-08-05 20:09:40
要实现文件上传和下载功能的PHP函数,我们可以使用PHP内置的文件处理函数来实现。
函数1:文件上传
function uploadFile($file) {
$targetDir = "/path/to/upload/directory/";
$targetFile = $targetDir . basename($file['name']);
$fileType = pathinfo($targetFile, PATHINFO_EXTENSION);
// 检查文件是否已经存在
if (file_exists($targetFile)) {
return "文件已经存在。";
}
// 检查文件大小
if ($file['size'] > 500000) {
return "文件过大。";
}
// 允许上传的文件类型
$allowedTypes = array('jpg', 'png', 'jpeg', 'gif');
if (!in_array($fileType, $allowedTypes)) {
return "只允许上传 jpg, png, jpeg, gif 格式的文件。";
}
// 将文件移动到目标目录
if (move_uploaded_file($file['tmp_name'], $targetFile)) {
return "文件上传成功。";
} else {
return "文件上传失败。";
}
}
使用示例:
if ($_FILES['file']['error'] == UPLOAD_ERR_OK) {
$result = uploadFile($_FILES['file']);
echo $result;
} else {
echo "文件上传错误。";
}
函数2:文件下载
function downloadFile($file) {
$filePath = "/path/to/file/directory/" . $file;
// 检查文件是否存在
if (file_exists($filePath)) {
// 设置HTTP头信息
header("Content-Type: application/octet-stream");
header("Content-Disposition: attachment; filename=" . basename($filePath));
header("Content-Length: " . filesize($filePath));
// 将文件内容输出到浏览器
readfile($filePath);
} else {
echo "文件不存在。";
}
}
使用示例:
$file = "example.txt"; downloadFile($file);
以上是一个简单的实现文件上传和下载功能的PHP函数,你可以根据自己的需求进行扩展和优化。
