当前位置:首页 > PHP

php下载文件实现

2026-04-02 23:39:32PHP

使用 file_get_contentsfile_put_contents

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

php下载文件实现

$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 扩展

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

php下载文件实现

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

分块下载大文件

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

$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无限分类的实现 无限分类是一种常见的树形结构数据组织方式,适用于商品分类、菜单管理、地区选择等场景。以下是几种实现方法: 递归实现法 递归是最直观的实现方式,通过函数自身调用来遍历子分类。数据…

php 函数实现

php 函数实现

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

php实现登陆

php实现登陆

PHP 实现登录功能 创建登录表单 在 HTML 文件中创建一个登录表单,包含用户名和密码输入框,表单的 action 属性指向处理登录的 PHP 文件。 <form action="logi…

php 实现mvc

php 实现mvc

PHP 实现 MVC 架构的方法 MVC(Model-View-Controller)是一种常见的软件设计模式,用于分离业务逻辑、用户界面和用户输入。以下是 PHP 实现 MVC 架构的关键步骤:…

vue 实现文件目录

vue 实现文件目录

Vue 实现文件目录结构 Vue 项目通常采用模块化设计,合理的目录结构有助于代码维护和团队协作。以下是常见的 Vue 项目目录结构及说明: 基础目录结构(基于 Vue CLI 生成) proje…

php实现重定向

php实现重定向

使用header函数进行重定向 在PHP中,header()函数是实现重定向的常用方法。通过发送HTTP头信息Location,浏览器会自动跳转到指定URL。需确保在调用header()前没有输出任何…