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中的时间相差8小时的解决办法
Mar 28 PHP
php中++i 与 i++ 的区别
Aug 08 PHP
解析yii数据库的增删查改
Jun 20 PHP
CodeIgniter生成网站sitemap地图的方法
Nov 13 PHP
jQuery中的RadioButton,input,CheckBox取值赋值实现代码
Feb 18 PHP
thinkphp模板用法和内容输出实例
Nov 28 PHP
cakephp打印sql语句的方法
Feb 13 PHP
关于WordPress的SEO优化相关的一些PHP页面脚本技巧
Dec 10 PHP
一个简单的php MVC留言本实例代码(必看篇)
Sep 22 PHP
ThinkPHP3.2.3框架实现的空模块、空控制器、空操作,跳转到错误404页面图文详解
Apr 03 PHP
PHP利用缓存处理用户注册时的邮箱验证,成功后用户数据存入数据库操作示例
Dec 31 PHP
YII2框架中日志的配置与使用方法实例分析
Mar 18 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 强制性文件下载功能的函数代码(任意文件格式)
2010/05/26 PHP
php定时计划任务的实现方法详解
2013/06/06 PHP
php ajax异步读取rss文档数据
2016/03/29 PHP
js 数组的for循环到底应该怎么写?
2010/05/31 Javascript
Javascript查询DBpedia小应用实例学习
2013/03/07 Javascript
JavaScript中string对象
2015/06/12 Javascript
jQuery遍历json的方法分析
2016/04/16 Javascript
Vue2.0基于vue-cli+webpack父子组件通信(实例讲解)
2017/09/14 Javascript
vue-resource拦截器设置头信息的实例
2017/10/27 Javascript
vue构建动态表单的方法示例
2018/09/22 Javascript
vue-cli的工程模板与构建工具详解
2018/09/27 Javascript
vue--vuex详解
2019/04/15 Javascript
element-ui上传一张图片后隐藏上传按钮功能
2019/05/22 Javascript
13 个npm 快速开发技巧(推荐)
2019/07/04 Javascript
微信小程序实现蓝牙打印
2019/09/23 Javascript
JavaScript实现简单计算器功能
2019/12/19 Javascript
nodejs nedb 封装库与使用方法示例
2020/02/06 NodeJs
[38:54]完美世界DOTA2联赛PWL S2 Rebirth vs LBZS 第一场 11.28
2020/12/01 DOTA
详解Python中 sys.argv[]的用法简明解释
2017/12/20 Python
Python WSGI的深入理解
2018/08/01 Python
python3 实现对图片进行局部切割的方法
2018/12/05 Python
django2.0扩展用户字段示例
2019/02/13 Python
Python3利用print输出带颜色的彩色字体示例代码
2019/04/08 Python
Python初学者常见错误详解
2019/07/02 Python
django 取消csrf限制的实例
2020/03/13 Python
Python利用Xpath选择器爬取京东网商品信息
2020/06/01 Python
法国房车租赁网站:Yescapa
2019/08/26 全球购物
美国踏板车和轻便摩托车销售网站:Mega Motor Madness
2020/02/26 全球购物
教师个人的自我评价分享
2014/01/02 职场文书
策划创业计划书
2014/02/06 职场文书
售后服务承诺书怎么写
2014/05/21 职场文书
平安建设工作方案
2014/06/02 职场文书
银行员工犯错检讨书
2014/09/16 职场文书
营销计划书范文
2015/01/17 职场文书
银行大堂经理培训心得体会
2016/01/09 职场文书
使用Docker容器部署rocketmq单机的全过程
2022/04/03 Servers