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 相关文章推荐
linux下 C语言对 php 扩展
Dec 14 PHP
php 全局变量范围分析
Aug 07 PHP
解析PHP提交后跳转
Jun 23 PHP
php环境套包 dedeampz 伪静态设置示例
Mar 26 PHP
php实现最简单的MVC框架实例教程
Sep 08 PHP
PHP连接MSSQL时nvarchar字段长度被截断为255的解决方法
Dec 25 PHP
PHP MVC框架路由学习笔记
Mar 02 PHP
PHP编程实现计算抽奖概率算法完整实例
Aug 09 PHP
PHP实现小程序批量通知推送
Nov 27 PHP
PHP常用工具函数小结【移除XSS攻击、UTF8与GBK编码转换等】
Apr 27 PHP
Laravel 实现在Blade模版中使用全局变量代替路径的例子
Oct 22 PHP
Laravel 集成微信用户登录和绑定的实现
Dec 27 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/05 PHP
php为什么选mysql作为数据库? Mysql 创建用户方法
2007/07/02 PHP
php中生成随机密码的自定义函数代码
2013/10/21 PHP
php实现httpRequest的方法
2015/03/13 PHP
PHPExcel简单读取excel文件示例
2016/05/26 PHP
Thinkphp 框架基础之源码获取、环境要求与目录结构分析
2020/04/27 PHP
PHP使用POP3读取邮箱接收邮件的示例代码
2020/07/08 PHP
网页设计常用的一些技巧
2006/12/22 Javascript
JQuery 表单中textarea字数限制实现代码
2009/12/07 Javascript
jQuery 版元素拖拽原型代码
2011/04/25 Javascript
javascript:文字不间断向左移动的实例代码
2013/08/08 Javascript
jquery实现checkbox全选全不选的简单实例
2013/12/31 Javascript
JavaScript中实现最高效的数组乱序方法
2014/10/11 Javascript
js实现TAB切换对应不同颜色的代码
2015/08/31 Javascript
理解javascript中的严格模式
2016/02/01 Javascript
JS遍历页面所有对象属性及实现方法
2016/08/01 Javascript
javascript稀疏数组(sparse array)和密集数组用法分析
2016/12/28 Javascript
JavaScript中利用构造器函数模拟类的方法
2017/02/16 Javascript
angular或者js怎么确定选中ul中的哪几个li
2017/08/16 Javascript
layui框架中layer父子页面交互的方法分析
2017/11/15 Javascript
使用VueRouter的addRoutes方法实现动态添加用户的权限路由
2019/06/03 Javascript
Vue 实现从小到大的横向滑动效果详解
2019/10/16 Javascript
vue vantUI tab切换时 list组件不触发load事件的问题及解决方法
2020/02/14 Javascript
js实现mp3录音通过websocket实时传送+简易波形图效果
2020/06/12 Javascript
浅谈vue中resetFields()使用注意事项
2020/08/12 Javascript
Python网络爬虫实例讲解
2016/04/28 Python
Python 字符串大小写转换的简单实例
2017/01/21 Python
python使用正则表达式替换匹配成功的组并输出替换的次数
2017/11/22 Python
python 利用pandas将arff文件转csv文件的方法
2019/02/12 Python
解决django xadmin主题不显示和只显示bootstrap2的问题
2020/03/30 Python
北美大型运动类产品商城:Champs Sports
2017/01/12 全球购物
英国电视和家用电器购物网站:rlrdistribution.co.uk
2018/11/20 全球购物
小学家长会邀请函
2014/01/23 职场文书
端午节粽子促销活动方案
2014/02/02 职场文书
2016教师暑期培训学习心得体会
2016/01/09 职场文书
Pytest实现setup和teardown的详细使用详解
2021/04/17 Python