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 相关文章推荐
简单的过滤字符串中的HTML标记
Dec 25 PHP
php数组函数序列之array_flip() 将数组键名与值对调
Nov 07 PHP
解析PHP生成静态html文件的三种方法
Jun 18 PHP
解析PHP强制转换类型及远程管理插件的安全隐患
Jun 30 PHP
PHP基于imap获取邮件实例
Nov 11 PHP
PHP利用hash冲突漏洞进行DDoS攻击的方法分析
Mar 26 PHP
php生成图片验证码的实例讲解
Aug 03 PHP
Yii2-GridView 中让关联字段带搜索和排序功能示例
Jan 21 PHP
php注册审核重点解析(数据访问)
May 23 PHP
php 判断IP为有效IP地址的方法
Jan 28 PHP
PHPExcel实现表格导出功能示例【带有多个工作sheet】
Jun 13 PHP
Laravel推荐使用的十个辅助函数
May 10 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
PHP实现多服务器session共享之NFS共享的方法
2007/03/16 PHP
php实现telnet功能示例
2014/04/08 PHP
PHP实现二叉树深度优先遍历(前序、中序、后序)和广度优先遍历(层次)实例详解
2018/04/20 PHP
自动更新作用
2006/10/08 Javascript
JavaScript 的方法重载效果
2009/08/07 Javascript
AngularJS中监视Scope变量以及外部调用Scope方法
2016/01/23 Javascript
详解JavaScript的内置对象
2016/12/07 Javascript
canvas时钟效果
2017/02/16 Javascript
简单实现js进度条加载效果
2020/03/25 Javascript
Koa项目搭建过程详细记录
2018/04/12 Javascript
JS+CSS3实现的简易钟表效果示例
2019/04/13 Javascript
JavaScript arguments.callee作用及替换方案详解
2020/09/02 Javascript
python调用短信猫控件实现发短信功能实例
2014/07/04 Python
Python程序中使用SQLAlchemy时出现乱码的解决方案
2015/04/24 Python
Python 遍历列表里面序号和值的方法(三种)
2017/02/17 Python
Python实现的爬虫功能代码
2017/06/24 Python
Python基于scapy实现修改IP发送请求的方法示例
2017/07/08 Python
Python程序退出方式小结
2017/12/09 Python
正确理解Python中if __name__ == '__main__'
2019/01/24 Python
Python同步遍历多个列表的示例
2019/02/19 Python
python为QT程序添加图标的方法详解
2020/03/09 Python
jupyter notebook读取/导出文件/图片实例
2020/04/16 Python
pandas DataFrame 数据选取,修改,切片的实现
2020/04/24 Python
python装饰器实现对异常代码出现进行自动监控的实现方法
2020/09/15 Python
python实现感知机模型的示例
2020/09/30 Python
英国IT硬件供应商,定制游戏PC:Mesh Computers
2019/03/28 全球购物
NICKIS.com荷兰:设计师儿童时装
2020/01/08 全球购物
遇到的Mysql的面试题
2014/06/29 面试题
百度吧主申请感言
2014/01/12 职场文书
简历的自我评价
2014/02/03 职场文书
学生评语大全
2014/04/18 职场文书
管理失职检讨书
2015/05/05 职场文书
企业愿景口号
2015/12/25 职场文书
如何用JavaScript实现一个数组惰性求值库
2021/05/05 Javascript
JavaScript offset实现鼠标坐标获取和窗口内模块拖动
2021/05/30 Javascript
解决vue-router的beforeRouteUpdate不能触发
2022/04/14 Vue.js