当前位置:首页 > PHP

php下载文件实现

2026-04-02 23:39:32PHP

使用 file_get_contentsfile_put_contents

适用于小文件下载,直接读取远程文件内容并保存到本地。

$remoteFileUrl = 'https://example.com/file.zip';
$localFilePath = 'local_file.zip';

$fileContent = file_get_contents($remoteFileUrl);
if ($fileContent !== false) {
    file_put_contents($localFilePath, $fileContent);
    echo "文件下载成功";
} else {
    echo "下载失败";
}

使用 cURL 扩展

支持更多自定义选项(如超时、头部信息),适合大文件或需要复杂控制的场景。

$remoteFileUrl = 'https://example.com/file.zip';
$localFilePath = 'local_file.zip';

$ch = curl_init($remoteFileUrl);
$fp = fopen($localFilePath, 'w+');
curl_setopt($ch, CURLOPT_FILE, $fp);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_TIMEOUT, 30);

$result = curl_exec($ch);
curl_close($ch);
fclose($fp);

if ($result) {
    echo "文件下载成功";
}

强制浏览器下载(非保存)

通过设置 HTTP 头部强制浏览器弹出下载对话框。

$filePath = 'path/to/local_file.zip';
$fileName = 'download.zip';

header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename="' . $fileName . '"');
header('Content-Length: ' . filesize($filePath));
readfile($filePath);
exit;

分块下载大文件

避免内存溢出,逐块读取并输出文件内容。

php下载文件实现

$filePath = 'large_file.zip';
$chunkSize = 1024 * 1024; // 1MB/块

header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment');

$handle = fopen($filePath, 'rb');
while (!feof($handle)) {
    echo fread($handle, $chunkSize);
    ob_flush();
    flush();
}
fclose($handle);

注意事项

  • 远程下载需确保 allow_url_fopen 开启(file_get_contents)或服务器支持 cURL。
  • 检查目标路径可写权限,避免因权限问题失败。
  • 大文件下载建议增加超时设置或进度提示。

标签: 文件php
分享给朋友:

相关文章

php实现分页

php实现分页

PHP实现分页的基本方法 使用LIMIT和OFFSET进行数据库查询分页。通过计算当前页码和每页显示数量,动态生成SQL语句。 $page = isset($_GET['page']) ? (int…

php实现websocket

php实现websocket

PHP 实现 WebSocket WebSocket 是一种在单个 TCP 连接上进行全双工通信的协议。PHP 可以通过多种方式实现 WebSocket 功能,以下是几种常见的方法: 使用 Ratc…

php 路由实现

php 路由实现

PHP 路由实现方法 在 PHP 中实现路由功能有多种方式,以下是几种常见的实现方法: 使用原生 PHP 实现 通过解析 URL 并匹配对应的控制器和动作: $request = $_SERVER…

php实现跳转

php实现跳转

PHP 实现页面跳转的方法 在 PHP 中实现页面跳转有多种方式,以下是常见的几种方法及其适用场景: 使用 header() 函数 通过 header() 函数发送 HTTP 头部信息实现跳转。注意…

php 函数实现

php 函数实现

PHP 函数实现基础 PHP 函数的定义使用 function 关键字,后跟函数名和参数列表。函数名不区分大小写,但建议保持一致。 function functionName($param1, $p…

php实现mvc

php实现mvc

PHP 实现 MVC 架构 MVC(Model-View-Controller)是一种常用的软件设计模式,将应用程序分为三个核心组件:模型(Model)、视图(View)和控制器(Controller…