当前位置: 首页 > news >正文

php ftell失效,微信无法播放php输出的视频流

php代码:

$fp = @fopen($file, 'rb');

// 获取文件大小

$size = filesize($file); // File size

$length = $size; // Content length

// 开始读取的位置

$start = 0; // Start byte

// 文件结尾

$end = $size - 1; // End byte

// 设置缓存

header("Cache-Control:max-age=604800");

header('Etag: ' . md5($file));

header('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT');

$length = $end - $start + 1; // Calculate new content length

fseek($fp, $start);

header('HTTP/1.1 206 Partial Content');

// TODO 暂时写死测试

header('Content-Type:video/mp4');

header("Content-Range: bytes $start-$end/$size");

header("Content-Length: $length");

$buffer = 1024 * 8;

while(!feof($fp) && ($p = ftell($fp)) <= $end) {

if ($p + $buffer > $end) {

$buffer = $end - $p + 1;

}

echo fread($fp, $buffer);

// Free up memory.

// Otherwise large files will trigger PHP's memory limit.

flush();

}

fclose($fp);

前端是直接只用的video标签;

在PC浏览器上是可以正常播放的,但是去到微信上就无法播放了,这个要怎么解决?求指教!

相关文章:

  • python中len(list)的用法,python中list列表的方法len()
  • php mssql 查询字段,php mssql扩展SQL查询中文字段名解决方法
  • php arraymerge 去重,PHP数组合并+与array_merge的区别分析 对多个数组合并去重技巧...
  • oracle多个实例查看,oracle一个实例多个数据库-oracle显示所有数据库-oracle数据库基本介绍...
  • oracle gc 部署,生产环境 CPU 高,定位发现是 oracle jdk7.79 的 GC 导致,只是很奇怪是 SYS 高, USR 不高...
  • oracle null 赋值,java和oracle 中NULL的使用
  • lisp如何调用linux头文件,用lisp开发博客客户端
  • linux 查看服务器任务,细说linux学习--服务器系统查看以及定时任务
  • linux隔离内核使用某些CPU,isolcpu参数 隔离cpu使其不被自动调度(linux 修改boot参数)...
  • linux路径信息,linux 底层 基础命令 路径信息
  • Linux基础信息,Linux基础(用户信息)
  • 在linux下安装mongo数据库,Linux系统下安装MongoDB
  • linux5编辑文本,linux 学习5 文本编辑器 vim
  • c语言数字类型转字符类型,C语言的基本数据类型及数据类型转换
  • 李含光c语言程序设计教程百度云,C语言程序设计教程 李含光 郑关胜 清华大学出版社习题答案...
  • (三)从jvm层面了解线程的启动和停止
  • 78. Subsets
  • create-react-app做的留言板
  • Django 博客开发教程 16 - 统计文章阅读量
  • django开发-定时任务的使用
  • HTTP那些事
  • IE报vuex requires a Promise polyfill in this browser问题解决
  • JavaScript-Array类型
  • Javascript弹出层-初探
  • JS函数式编程 数组部分风格 ES6版
  • MySQL的数据类型
  • socket.io+express实现聊天室的思考(三)
  • Spring Cloud Feign的两种使用姿势
  • 基于Android乐音识别(2)
  • 模仿 Go Sort 排序接口实现的自定义排序
  • 浅析微信支付:申请退款、退款回调接口、查询退款
  • 区块链分支循环
  • 扫描识别控件Dynamic Web TWAIN v12.2发布,改进SSL证书
  • 使用docker-compose进行多节点部署
  • 我感觉这是史上最牛的防sql注入方法类
  • 这几个编码小技巧将令你 PHP 代码更加简洁
  • MyCAT水平分库
  • 资深实践篇 | 基于Kubernetes 1.61的Kubernetes Scheduler 调度详解 ...
  • ​flutter 代码混淆
  • #FPGA(基础知识)
  • $.extend({},旧的,新的);合并对象,后面的覆盖前面的
  • (11)MATLAB PCA+SVM 人脸识别
  • (2)Java 简介
  • (附源码)ssm教师工作量核算统计系统 毕业设计 162307
  • (官网安装) 基于CentOS 7安装MangoDB和MangoDB Shell
  • (四)模仿学习-完成后台管理页面查询
  • (一)kafka实战——kafka源码编译启动
  • (转)eclipse内存溢出设置 -Xms212m -Xmx804m -XX:PermSize=250M -XX:MaxPermSize=356m
  • .net利用SQLBulkCopy进行数据库之间的大批量数据传递
  • .net连接oracle数据库
  • .NET设计模式(8):适配器模式(Adapter Pattern)
  • .net实现头像缩放截取功能 -----转载自accp教程网
  • .NET中winform传递参数至Url并获得返回值或文件
  • .Net组件程序设计之线程、并发管理(一)
  • [2018/11/18] Java数据结构(2) 简单排序 冒泡排序 选择排序 插入排序