当前位置:首页 > PHP

php 实现视频下载

2026-02-14 00:35:58PHP

使用 PHP 实现视频下载的方法

通过文件流直接输出视频内容

使用 readfile() 函数读取视频文件并直接输出到浏览器,设置合适的 HTTP 头部强制下载:

$file_path = '/path/to/video.mp4';
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;

分段下载大视频文件

对于大文件,使用 fread() 分段读取避免内存溢出:

$file_path = '/path/to/large_video.mp4';
$chunk_size = 1024 * 1024; // 1MB per chunk
$handle = fopen($file_path, 'rb');
header('Content-Type: video/mp4');
header('Content-Length: ' . filesize($file_path));
header('Content-Disposition: attachment; filename="video.mp4"');
while (!feof($handle)) {
    echo fread($handle, $chunk_size);
    ob_flush();
    flush();
}
fclose($handle);

从远程 URL 下载视频

使用 file_get_contents() 或 CURL 获取远程视频后保存到本地:

$remote_url = 'https://example.com/video.mp4';
$local_path = 'downloaded_video.mp4';
$video_data = file_get_contents($remote_url);
file_put_contents($local_path, $video_data);

使用 CURL 处理重定向和认证

对于需要处理 HTTP 认证或重定向的远程视频:

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://example.com/video.mp4');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
$video_data = curl_exec($ch);
file_put_contents('video.mp4', $video_data);
curl_close($ch);

注意事项

  • 确保服务器有足够的存储空间和内存处理大文件
  • 检查文件权限是否允许读写操作
  • 对于公开下载链接需验证用户权限
  • 考虑添加下载限速防止服务器过载

以上方法可根据实际需求组合使用,例如先通过 CURL 获取远程视频再分段输出给用户下载。

php 实现视频下载

标签: 视频下载php
分享给朋友:

相关文章

php实现文件上传

php实现文件上传

PHP 文件上传实现方法 在 PHP 中实现文件上传需要处理 HTML 表单和服务器端脚本。以下是详细步骤: 创建 HTML 表单 使用 enctype="multipart/form-data"…

php实现搜索功能

php实现搜索功能

实现基本的搜索功能 在PHP中实现搜索功能通常涉及数据库查询。以下是一个简单的实现方式,假设使用MySQL数据库: <?php // 连接数据库 $conn = new mysqli('loc…

php实现树

php实现树

PHP实现树结构的方法 在PHP中实现树结构通常可以通过递归或迭代的方式完成。以下是几种常见的实现方法: 递归实现树结构 递归是处理树结构的自然方式,尤其适用于具有未知深度的树。 class…

php 实现购物车

php 实现购物车

PHP 实现购物车功能 购物车功能是电子商务网站的核心部分,可以通过 PHP 和 Session 或数据库来实现。以下是两种常见的实现方式: 使用 Session 存储购物车数据 Sessi…

基于php的设计与实现

基于php的设计与实现

PHP 设计与实现的关键要素 环境搭建与框架选择 PHP开发需配置服务器环境(如Apache/Nginx)、PHP版本(建议7.4+)及数据库(MySQL/MariaDB)。主流框架包括Laravel…

php实现的分页

php实现的分页

PHP 实现分页的方法 基本分页逻辑 分页的核心在于计算总页数、当前页码以及数据偏移量。假设每页显示 10 条数据: $current_page = isset($_GET['page']) ? (…