php下载远程大文件(获取远程文件大小)的实例


Posted in PHP onJune 17, 2017

废话不多说,直接上代码

<?php
  // 暂不支持断点续传
  // $url = 'http://www.mytest.com/debian.iso'; 不知道为何获取本地文件大小为0
  $url = 'http://192.168.8.93/download/vm-672/18/0.vmdk';
  $file = basename($url);
  $header = get_headers($url, 1);
  $size = $header['Content-Length'];

  $fp = fopen($url, 'rb');
  if ($fp === false) exit('文件不存在或打开失败');

  header('Content-Description: File Transfer');
  header('Content-Type: application/octet-stream');
  header('Content-Disposition: attachment; filename="'.$file.'"');
  header('Content-Transfer-Encoding: binary');
  header('Expires: 0');
  header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
  header('Pragma: public');
  header('Content-Length: ' . $size);

  ob_clean();
  ob_end_flush();
  set_time_limit(0);
  
  $chunkSize = 1024 * 1024;
  while (!feof($fp)) {
    $buffer = fread($fp, $chunkSize);
    echo $buffer;
    ob_flush();
    flush();
  }
  fclose($fp);
  exit;

以上这篇php下载远程大文件(获取远程文件大小)的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

PHP 相关文章推荐
PHP生成excel时单元格内换行问题的解决方法
Aug 26 PHP
深入探讨:Nginx 502 Bad Gateway错误的解决方法
Jun 03 PHP
PHP引用符&amp;的用法详细解析
Aug 22 PHP
实现获取http内容的php函数分享
Feb 16 PHP
PHP的password_hash()使用实例
Mar 17 PHP
ThinkPHP自动填充实现无限级分类的方法
Aug 22 PHP
ThinkPHP提示错误Fatal error: Allowed memory size的解决方法
Feb 12 PHP
PHP使用内置dir类实现目录遍历删除
Mar 31 PHP
PHP实现文件上传和多文件上传
Dec 24 PHP
PHP 信号管理知识整理汇总
Feb 19 PHP
Yii2.0实现生成二维码功能实例
Oct 24 PHP
php扩展开发入门demo示例
Sep 23 PHP
浅谈ThinkPHP5.0版本和ThinkPHP3.2版本的区别
Jun 17 #PHP
PHP 7安装调试工具Xdebug扩展的方法教程
Jun 17 #PHP
thinkphp查询,3.X 5.0方法(亲试可行)
Jun 17 #PHP
php 生成加密公钥加密私钥实例详解
Jun 16 #PHP
详解yii2使用多个数据库的案例
Jun 16 #PHP
详解Yii2.0使用AR联表查询实例
Jun 16 #PHP
详解Yii2 之 生成 URL 的方法
Jun 16 #PHP
You might like
NO3第三帝国留言簿制作过程
2006/10/09 PHP
PHP中用接口、抽象类、普通基类实现“面向接口编程”与“耦合方法”简述
2011/03/23 PHP
深入分析PHP优化及注意事项
2016/07/04 PHP
PHP实现广度优先搜索算法(BFS,Broad First Search)详解
2017/09/16 PHP
PHP 文件写入和读取操作实例详解【必看篇】
2019/11/04 PHP
JS getMonth()日期函数的值域是0-11
2010/02/15 Javascript
javascript在事件监听方面的兼容性小结
2010/04/07 Javascript
页面元素绑定jquery toggle后元素隐藏的解决方法
2014/03/27 Javascript
jquery获取table指定行和列的数据方法(当前选中行、列)
2016/11/07 Javascript
jQuery Easyui 下拉树组件combotree
2016/12/16 Javascript
详解AngularJS用Interceptors来统一处理HTTP请求和响应
2017/06/08 Javascript
vue webpack打包后图片路径错误的完美解决方法
2018/12/07 Javascript
彻底揭秘keep-alive原理(小结)
2019/05/05 Javascript
JavaScript实现Tab选项卡切换
2020/02/13 Javascript
nodejs脚本centos开机启动实操方法
2020/03/04 NodeJs
[40:01]OG vs Winstrike 2018国际邀请赛小组赛BO2 第一场 8.19
2018/08/21 DOTA
[05:00]TI9战队采访 - Royal Never Give Up
2019/08/20 DOTA
由Python运算π的值深入Python中科学计算的实现
2015/04/17 Python
CentOS下使用yum安装python-pip失败的完美解决方法
2017/08/16 Python
详解Django+Uwsgi+Nginx的生产环境部署
2018/06/25 Python
python3 实现对图片进行局部切割的方法
2018/12/05 Python
Python中函数参数匹配模型详解
2019/06/09 Python
python实现简易淘宝购物
2019/11/22 Python
施华洛世奇韩国官网:SWAROVSKI韩国
2018/06/05 全球购物
Myprotein芬兰官网:欧洲第一运动营养品牌
2019/05/05 全球购物
毕业自我鉴定范文
2013/11/06 职场文书
建筑人员岗位职责
2013/12/25 职场文书
计算机科学系职业生涯规划书
2014/03/08 职场文书
高考标语大全
2014/06/05 职场文书
我的中国梦演讲稿小学篇
2014/08/19 职场文书
常务副县长“四风”个人对照检查材料思想汇报
2014/10/02 职场文书
2014年保卫工作总结
2014/12/05 职场文书
大学生村官工作总结2015
2015/04/09 职场文书
电力安全学习心得体会
2016/01/18 职场文书
MongoDB orm框架的注意事项及简单使用
2021/06/20 MongoDB
详解Oracle数据库中自带的所有表结构(sql代码)
2021/11/20 Oracle