欢迎访问宙启技术站
智能推送

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;
?>

以上是文件上传和下载的简单示例,在实际使用中,还可以进行一些安全性检查和文件处理的逻辑,以满足特定的需求。