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 相关文章推荐
人大复印资料处理程序_补充篇
Oct 09 PHP
PHP中Session的概念
Oct 09 PHP
用DBSQL类加快开发MySQL数据库程序的速度
Oct 09 PHP
MYSQL环境变量设置方法
Jan 15 PHP
php下的权限算法的实现
Apr 28 PHP
浅谈PHP 闭包特性在实际应用中的问题
Oct 30 PHP
PHP持久连接mysql_pconnect()函数使用介绍
Feb 05 PHP
php中curl和file_get_content的区别
May 10 PHP
php使用PDO方法详解
Dec 27 PHP
php版微信自动获取收货地址api用法示例
Sep 22 PHP
PHP实现搜索时记住状态的方法示例
May 11 PHP
PHP array_reverse() 函数原理及实例解析
Jul 14 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
DOTA2【瓜皮时刻】Vol.91 RTZ山史最惨“矿难”
2021/03/05 DOTA
PHP 和 MySQL 开发的 8 个技巧
2007/01/02 PHP
php adodb连接mssql解决乱码问题
2009/06/12 PHP
推荐一本PHP程序猿都应该拜读的书
2014/12/31 PHP
php pdo oracle中文乱码的快速解决方法
2016/05/16 PHP
yii 框架实现按天,月,年,自定义时间段统计数据的方法分析
2020/04/04 PHP
Jquery 学习笔记(一)
2009/10/13 Javascript
JS在TextArea光标位置插入文字并实现移动光标到文字末尾
2013/06/21 Javascript
JS判断数组中是否有重复值得三种实用方法
2013/08/16 Javascript
jQuery中ready事件用法实例
2015/01/19 Javascript
JS限定手机版中图片大小随分辨率自动调整的方法
2016/12/05 Javascript
Vuex简单入门
2017/04/19 Javascript
zTree树形菜单交互选项卡效果的实现方法
2017/12/25 Javascript
vue+element-ui实现表格编辑的三种实现方式
2018/10/31 Javascript
Vue 指令实现按钮级别权限管理功能
2019/04/23 Javascript
WebGL three.js学习笔记之阴影与实现物体的动画效果
2019/04/25 Javascript
Vue组件间数据传递的方式(3种)
2020/07/13 Javascript
vue-router定义元信息meta操作
2020/12/07 Vue.js
[01:29:31]VP VS VG Supermajor小组赛胜者组第二轮 BO3第一场 6.2
2018/06/03 DOTA
python 从远程服务器下载日志文件的程序
2013/02/10 Python
python创建列表并给列表赋初始值的方法
2015/07/28 Python
详解Python的Twisted框架中reactor事件管理器的用法
2016/05/25 Python
python自定义线程池控制线程数量的示例
2019/02/22 Python
Django+boostrap 美化admin后台的操作
2020/03/11 Python
个人找工作求职简历的自我评价
2013/10/20 职场文书
学校消防安全制度
2014/01/30 职场文书
银行开业庆典方案
2014/02/06 职场文书
2014年社区学雷锋活动总结
2014/03/09 职场文书
物理学专业求职信
2014/07/04 职场文书
紧急通知
2015/04/17 职场文书
硕士毕业答辩开场白
2015/05/27 职场文书
对领导班子的意见和建议
2015/06/08 职场文书
交流会主持词
2015/07/02 职场文书
高效笔记技巧分享:学会这些让你不再困扰
2019/09/04 职场文书
goland 恢复已更改文件的操作
2021/04/28 Golang
浅谈Redis存储数据类型及存取值方法
2021/05/08 Redis