PHP fopen函数与文件上传下载

avatar
作者
筋斗云
阅读量:0

fopen 是 PHP 中用于打开文件的一个内置函数。它可以用于文件上传和下载,但需要与其他函数结合使用。

  1. 文件上传:

在处理文件上传时,通常会将用户上传的文件保存到服务器上。这里是一个简单的例子:

// 检查是否有文件上传 if ($_FILES["file"]["error"] > 0) {     echo "Error: " . $_FILES["file"]["error"] . "<br>"; } else {     // 确定要保存文件的路径     $target_dir = "uploads/";     $target_file = $target_dir . basename($_FILES["file"]["name"]);      // 尝试将文件移动到指定目录     if (move_uploaded_file($_FILES["file"]["tmp_name"], $target_file)) {         echo "The file " . basename($_FILES["file"]["name"]) . " has been uploaded.";     } else {         echo "Sorry, there was an error uploading your file.";     } } 
  1. 文件下载:

在处理文件下载时,可以使用 fopenfpassthru 函数将文件从服务器发送到客户端。这里是一个简单的例子:

// 设置文件名和文件路径 $filename = "example.txt"; $filepath = "downloads/" . $filename;  // 检查文件是否存在 if (file_exists($filepath)) {     // 打开文件     $file = fopen($filepath, "rb");      // 设置头信息以触发下载     header("Content-Type: application/octet-stream");     header("Content-Disposition: attachment; filename=\"$filename\"");     header("Content-Length: " . filesize($filepath));      // 读取并发送文件内容     fpassthru($file);      // 关闭文件     fclose($file);      // 退出脚本     exit; } else {     echo "File not found."; } 

在这个例子中,我们首先检查文件是否存在。如果存在,我们使用 fopen 以二进制只读模式(“rb”)打开文件。然后,我们设置响应头以告知浏览器这是一个文件下载。最后,我们使用 fpassthru 函数读取文件内容并将其发送给客户端。完成后,我们关闭文件并退出脚本。

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!