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 相关文章推荐
理解PHP5中static和const关键字的区别
Mar 19 PHP
PHP入门学习笔记之一
Oct 12 PHP
PHP HTML JavaScript MySQL代码如何互相传值的方法分享
Sep 30 PHP
做了CDN获取用户真实IP的函数代码(PHP与Asp设置方式)
Apr 13 PHP
提升PHP性能的21种方法介绍
Jun 25 PHP
一个PHP针对数字的加密解密类
Mar 20 PHP
PHP动态页生成静态页的3种常用方法
Nov 13 PHP
php之static静态属性与静态方法实例分析
Jul 30 PHP
利用PHPStorm如何开发Laravel应用详解
Aug 30 PHP
PHP删除数组中指定下标的元素方法
Feb 03 PHP
PHP正则匹配到2个字符串之间的内容方法
Dec 24 PHP
总结PHP中初始化空数组的最佳方法
Feb 13 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 数组的指针操作实现代码
2011/02/08 PHP
PHP Oauth授权和本地加密实现方法
2016/08/12 PHP
laravel框架使用FormRequest进行表单验证,验证异常返回JSON操作示例
2020/02/18 PHP
tagName的使用,留一笔
2006/06/26 Javascript
javascript 写类方式之三
2009/07/05 Javascript
xml转json的js代码
2012/08/28 Javascript
javascript中的=等号个数问题两个跟三个有什么区别
2013/10/23 Javascript
JavaScript中最简洁的编码html字符串的方法
2014/10/11 Javascript
JQuery查找DOM节点的方法
2015/06/11 Javascript
JQuery遍历元素的父辈和祖先的方法
2016/09/18 Javascript
VueJS全面解析
2016/11/10 Javascript
vue时间格式化实例代码
2017/06/13 Javascript
微信页面弹出键盘后iframe内容变空白的解决方案
2017/09/20 Javascript
Vue.js与 ASP.NET Core 服务端渲染功能整合
2017/11/16 Javascript
ES6 系列之 WeakMap的使用示例
2018/08/06 Javascript
JavaScript事件发布/订阅模式原理与用法分析
2018/08/21 Javascript
在 Vue.js中优雅地使用全局事件的方法
2019/02/01 Javascript
Node.js + express基本用法教程
2019/03/14 Javascript
python ElementTree 基本读操作示例
2009/04/09 Python
如何运行Python程序的方法
2013/04/21 Python
Python使用新浪微博API发送微博的例子
2014/04/10 Python
详解django中自定义标签和过滤器
2017/07/03 Python
Python实现文件信息进行合并实例代码
2018/01/17 Python
Python机器学习k-近邻算法(K Nearest Neighbor)实例详解
2018/06/25 Python
python 环境搭建 及python-3.4.4的下载和安装过程
2019/07/20 Python
美容师的职业规划书
2013/12/27 职场文书
大学生的自我鉴定范文
2014/01/21 职场文书
省优秀教师事迹材料
2014/01/30 职场文书
寄语十八大感言
2014/02/07 职场文书
绘画专业自荐信范文
2014/02/23 职场文书
学校综治宣传月活动总结
2014/07/02 职场文书
简单的个人租房协议书范本
2014/11/26 职场文书
辞职报告(范文三篇)
2019/08/27 职场文书
用python自动生成日历
2021/04/24 Python
【海涛DOTA】D-cup邀请赛NV.cn vs DT.Love
2022/04/01 DOTA
微信小程序纯CSS实现无限弹幕滚动效果
2022/09/23 HTML / CSS