PHP文件处理函数:文件上传和下载技巧
发布时间:2023-08-12 02:58:17
文件上传和下载是Web开发中常用的功能之一。在PHP中,文件上传和下载可以通过一些内置的函数和技巧来实现。
文件上传:
1. enctype属性:在表单中需要添加enctype属性,并设置为"multipart/form-data",以支持文件上传。
2. $_FILES全局数组:PHP中使用$_FILES全局数组来接收上传文件的信息。$_FILES数组包含了上传文件的名称、临时文件路径、文件类型、文件大小等信息。
3. move_uploaded_file函数:将上传的文件移动到指定的目录中。该函数的 个参数为临时文件路径,第二个参数为目标文件路径。
示例代码:
<form action="upload.php" method="post" enctype="multipart/form-data">
<input type="file" name="file">
<input type="submit" value="上传">
</form>
<?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$target_dir = "uploads/"; // 目标文件夹
$target_file = $target_dir . basename($_FILES["file"]["name"]); // 目标文件路径
if (move_uploaded_file($_FILES["file"]["tmp_name"], $target_file)) {
echo "文件上传成功";
} else {
echo "文件上传失败";
}
}
?>
文件下载:
1. header函数:在PHP中,使用header函数来发送HTTP头信息,可以通过header函数将内容标记为下载,设置文件的类型和名称等信息。
2. readfile函数:读取文件内容并输出。
示例代码:
<?php
$file = "path/to/file.pdf"; // 文件路径
$filename = "file.pdf"; // 下载时显示的文件名
header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename="' . $filename . '"');
header('Expires: 0');
header('Cache-Control: must-revalidate');
header('Pragma: public');
header('Content-Length: ' . filesize($file));
readfile($file);
exit;
?>
以上是文件上传和下载的简单示例,在实际使用中,还可以进行一些安全性检查和文件处理的逻辑,以满足特定的需求。
