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下获取客户端ip地址的函数
Mar 15 PHP
php include和require的区别深入解析
Jun 17 PHP
php的数组与字符串的转换函数整理汇总
Jul 18 PHP
php加密解密实用类分享
Jan 07 PHP
php 批量添加多行文本框textarea一行一个
Jun 03 PHP
ThinkPHP路由详解
Jul 27 PHP
php5.2的curl-bug 服务器被php进程卡死问题排查
Sep 19 PHP
解决PHP程序运行时:Fatal error: Maximum execution time of 30 seconds exceeded in的错误提示
Nov 25 PHP
PHP中的use关键字及文件的加载详解
Nov 28 PHP
浅谈php中变量的数据类型判断函数
Mar 04 PHP
浅析PHP7的多进程及实例源码
Apr 14 PHP
Laravel find in set排序实例
Oct 09 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
环境会对咖啡种植有什么影响
2021/03/03 咖啡文化
PHP正则的Unknown Modifier错误解决方法
2010/03/02 PHP
php函数的常用方法及注意之处小结
2011/07/10 PHP
Javascript代码混淆综合解决方案-Javascript在线混淆器
2006/12/18 Javascript
node.js中RPC(远程过程调用)的实现原理介绍
2014/12/05 Javascript
javascript面向对象之访问对象属性的两种方式分析
2015/01/13 Javascript
深入理解JavaScript系列(27):设计模式之建造者模式详解
2015/03/03 Javascript
input点击后placeholder中的提示消息消失
2016/01/15 Javascript
JS实现图片延迟加载并淡入淡出效果的简单方法
2016/08/25 Javascript
JS判断输入的字符串是否是数字的方法(正则表达式)
2016/11/29 Javascript
javascript中setAttribute兼容性用法分析
2016/12/12 Javascript
微信小程序开发中的疑问解答汇总
2017/07/03 Javascript
node 命令方式启动修改端口的方法
2018/05/12 Javascript
浅谈Vue路由快照实现思路及其问题
2018/06/07 Javascript
layer弹出层取消遮罩的方法
2019/09/25 Javascript
python中lambda函数 list comprehension 和 zip函数使用指南
2014/09/28 Python
轻量级的Web框架Flask 中模块化应用的实现
2017/09/11 Python
浅谈python数据类型及类型转换
2017/12/18 Python
python实现学生信息管理系统
2020/04/05 Python
python设置值及NaN值处理方法
2018/07/03 Python
Python中查看变量的类型内存地址所占字节的大小
2019/06/26 Python
python按键按住不放持续响应的实例代码
2019/07/17 Python
python实现的分析并统计nginx日志数据功能示例
2019/12/21 Python
Tensorflow轻松实现XOR运算的方式
2020/02/03 Python
css3实现垂直下拉动画菜单示例
2014/04/22 HTML / CSS
CSS3 实现图形下落动画效果
2020/11/13 HTML / CSS
世界上最大的铁人三项商店:Tri UK
2020/11/04 全球购物
广州御银科技股份有限公司试卷(C++)
2016/11/04 面试题
自我鉴定书范文
2013/10/02 职场文书
打架检讨书100字
2014/01/19 职场文书
2014年三八妇女节活动总结
2014/03/01 职场文书
七一讲话心得体会
2014/09/05 职场文书
学习三严三实对照检查材料思想汇报
2014/09/22 职场文书
道路交通事故人身损害赔偿协议书
2014/11/19 职场文书
团结友爱主题班会
2015/08/13 职场文书
关于职业道德的心得体会
2016/01/18 职场文书