PHP 文件传输机制

PHP 文件传输机制详解

PHP 提供了强大的文件处理能力,包括文件上传和下载。

文件上传

用户可以通过表单将文件上传至服务器。PHP 利用 $_FILES 超全局变量接收上传的文件信息,并使用 move_uploaded_file() 函数将文件移动到指定位置。

以下是一个简单的文件上传示例:

<?php
if ($_FILES["file"]["error"] > 0) {
  echo "Error: " . $_FILES["file"]["error"] . "
"; } else { $target_dir = "uploads/"; $target_file = $target_dir . basename($_FILES["file"]["name"]); if (move_uploaded_file($_FILES["file"]["tmp_name"], $target_file)) { echo "文件 ". basename( $_FILES["file"]["name"]). " 上传成功。"; } else { echo "文件上传失败。"; } } ?>

文件下载

PHP 可以通过设置 HTTP 头信息,将服务器上的文件发送到客户端,实现文件下载功能。header() 函数可以用于设置 HTTP 头信息,例如 Content-DispositionContent-Type

以下是一个简单的文件下载示例:

<?php
$file_path = "downloads/example.txt";

if (file_exists($file_path)) {
  header('Content-Description: File Transfer');
  header('Content-Type: application/octet-stream');
  header('Content-Disposition: attachment; filename="'.basename($file_path).'"');
  header('Expires: 0');
  header('Cache-Control: must-revalidate');
  header('Pragma: public');
  header('Content-Length: ' . filesize($file_path));
  readfile($file_path);
  exit;
} else {
  echo "文件不存在。";
}
?>

需要注意的是,在实际应用中,需要对上传和下载的文件进行安全性和完整性校验,以确保服务器和用户数据的安全。

zip 文件大小:1.61KB