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.MVC的模板标签系统(一)
Sep 05 PHP
php实现保存submit内容之后禁止刷新
Mar 19 PHP
PHP中加密解密函数与DES加密解密实例
Oct 17 PHP
10个php函数实用却不常见
Oct 13 PHP
php导出生成word的方法
Dec 25 PHP
PHP中的密码加密的解决方案总结
Oct 26 PHP
[原创]php集成安装包wampserver修改密码后phpmyadmin无法登陆的解决方法
Nov 23 PHP
php的laravel框架快速集成微信登录的方法
Dec 12 PHP
thinkPHP5实现的查询数据库并返回json数据实例
Oct 23 PHP
PHP设计模式之注册树模式分析
Jan 26 PHP
关于Laravel-admin的基础用法总结和自定义model详解
Oct 08 PHP
Laravel 修改验证异常的响应格式实例代码详解
May 25 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
2006/12/13 PHP
jQuery 各种浏览器下获得日期区别
2008/12/22 Javascript
JQuery 将元素显示在屏幕的中央的代码
2010/02/27 Javascript
jQuery插件开发基础简单介绍
2013/01/07 Javascript
jQuery实现鼠标滑过遮罩并高亮显示效果
2013/07/16 Javascript
深入分析JQuery和JavaScript的异同
2014/10/23 Javascript
js获取checkbox值的方法
2015/01/28 Javascript
jQuery模拟原生态App上拉刷新下拉加载更多页面及原理
2015/08/10 Javascript
js实现消息滚动效果
2017/01/18 Javascript
JavaScript仿微信打飞机游戏
2020/07/05 Javascript
详解axios 全攻略之基本介绍与使用(GET 与 POST)
2017/09/15 Javascript
vue-baidu-map 进入页面自动定位的解决方案(推荐)
2018/04/28 Javascript
Angular2 自定义表单验证器的实现方法
2018/12/14 Javascript
Javascript读取上传文件内容/类型/字节数
2019/04/30 Javascript
[01:01:13]2018DOTA2亚洲邀请赛 4.5 淘汰赛 Mineski vs VG 第三场
2018/04/06 DOTA
python处理圆角图片、圆形图片的例子
2014/04/25 Python
编写Python脚本批量下载DesktopNexus壁纸的教程
2015/05/06 Python
python实现的简单FTP上传下载文件实例
2015/06/30 Python
python 对dataframe下面的值进行大规模赋值方法
2018/06/09 Python
python实现桌面壁纸切换功能
2019/01/21 Python
浅析python 中大括号中括号小括号的区分
2019/07/29 Python
在 Python 中接管键盘中断信号的实现方法
2020/02/04 Python
Python数据可视化处理库PyEcharts柱状图,饼图,线性图,词云图常用实例详解
2020/02/10 Python
Python爬虫谷歌Chrome F12抓包过程原理解析
2020/06/04 Python
Python直接赋值及深浅拷贝原理详解
2020/09/05 Python
html2canvas把div保存图片高清图的方法示例
2018/03/05 HTML / CSS
西班牙家用电器和电子产品购物网站:Mi Electro
2019/02/25 全球购物
机械设计专业应届生求职信
2013/11/21 职场文书
安全例会汇报材料
2014/08/23 职场文书
2014物价局民主生活会对照检查材料思想汇报
2014/09/24 职场文书
学位证书委托书
2014/09/30 职场文书
怎样写离婚协议书
2015/01/26 职场文书
欠款证明
2015/06/24 职场文书
2015年新农村建设指导员工作总结
2015/07/24 职场文书
任命书格式范文
2015/09/22 职场文书
MySQL约束(创建表时的各种条件说明)
2022/06/21 MySQL