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内存相关的功能特性详解
Jun 08 PHP
PHP取整函数:ceil,floor,round,intval的区别详细解析
Aug 31 PHP
PHP正则提取不包含指定网址的图片地址的例子
Apr 21 PHP
使用图灵api创建微信聊天机器人
Jul 23 PHP
PHP的serialize序列化数据以及JSON格式化数据分析
Oct 10 PHP
Zend Framework教程之前端控制器Zend_Controller_Front用法详解
Mar 07 PHP
Zend Framework框架Smarty扩展实现方法
Mar 22 PHP
理解php依赖注入和控制反转
May 11 PHP
用php和jQuery来实现“顶”和“踩”的投票功能
Oct 13 PHP
php实现微信扫码支付
Mar 26 PHP
PHP基于递归算法解决兔子生兔子问题
May 11 PHP
PHP钩子实现方法解析
May 21 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
实现“上一页”和“下一页按钮
2006/10/09 PHP
CentOS6.5 编译安装lnmp环境
2014/12/21 PHP
WordPress中创建用户角色的相关PHP函数使用详解
2015/12/25 PHP
PHP封装的验证码工具类定义与用法示例
2018/08/22 PHP
Span元素的width属性无效果原因及解决方案
2010/01/15 Javascript
onsubmit阻止form表单提交与onclick的相关操作
2010/09/03 Javascript
Extjs NumberField后面加单位实现思路
2013/07/30 Javascript
Javascript验证上传图片大小[前台处理]
2014/07/18 Javascript
JavaScript中的pow()方法使用详解
2015/06/15 Javascript
Bootstrap每天必学之js插件
2015/11/30 Javascript
jQuery使用contains过滤器实现精确匹配方法详解
2016/02/25 Javascript
微信小程序 定义全局数据、函数复用、模版等详细介绍
2016/10/27 Javascript
微信公众号 摇一摇周边功能开发
2016/12/08 Javascript
原生js获取left值和top值的三种方法
2017/08/02 Javascript
vue 2.0封装model组件的方法
2017/08/03 Javascript
JS实现拼图游戏
2021/01/29 Javascript
vue-cli4项目开启eslint保存时自动格式问题
2020/07/13 Javascript
Python和perl实现批量对目录下电子书文件重命名的代码分享
2014/11/21 Python
python使用Image处理图片常用技巧分析
2015/06/01 Python
基于scrapy的redis安装和配置方法
2018/06/13 Python
在Python中os.fork()产生子进程的例子
2019/08/08 Python
Python分割训练集和测试集的方法示例
2019/09/19 Python
Python实现ElGamal加密算法的示例代码
2020/06/19 Python
Python 使用Opencv实现目标检测与识别的示例代码
2020/09/08 Python
python 利用opencv实现图像网络传输
2020/11/12 Python
美国大城市最热门旅游景点门票:CityPASS
2016/12/16 全球购物
化石印度尼西亚在线商店:Fossil Indonesia
2019/03/11 全球购物
应届生服务员求职信
2013/10/31 职场文书
家长会邀请书
2014/01/25 职场文书
自立自强的名人事例
2014/02/10 职场文书
会议主持词
2014/03/17 职场文书
本科毕业答辩开场白
2015/05/27 职场文书
婚礼家长致辞
2015/07/27 职场文书
2015年挂职锻炼个人总结
2015/10/22 职场文书
css display table 自适应高度、宽度问题的解决
2021/05/07 HTML / CSS
SpringBoot整合Redis入门之缓存数据的方法
2021/11/17 Redis