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 相关文章推荐
提示Trying to clone an uncloneable object of class Imagic的解决
Oct 27 PHP
php的ZipArchive类用法实例
Oct 20 PHP
PHP之sprintf函数用法详解
Nov 12 PHP
通过php添加xml文档内容的方法
Jan 23 PHP
phpcms手机内容页面添加上一篇和下一篇
Jun 05 PHP
PHP加密解密函数详解
Oct 28 PHP
Symfony2函数用法实例分析
Mar 18 PHP
PHP中加速、缓存扩展的区别和作用详解(eAccelerator、memcached、xcache、APC )
Jul 09 PHP
使用php实现网站验证码功能【推荐】
Feb 09 PHP
浅谈php://filter的妙用
Mar 05 PHP
PHP论坛实现积分系统的思路代码详解
Jun 01 PHP
浅谈PHP之ThinkPHP框架使用详解
Jul 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
php实现session自定义会话处理器的方法
2015/01/27 PHP
PHP基于自定义函数生成笛卡尔积的方法示例
2017/09/30 PHP
js函数般调用正则
2008/04/08 Javascript
Jquery实战_读书笔记1—选择jQuery
2010/01/22 Javascript
两个比较有用的Javascript工具函数代码
2010/02/17 Javascript
jQuery Deferred和Promise创建响应式应用程序详细介绍
2013/03/05 Javascript
js实时获取并显示当前时间的方法
2015/07/31 Javascript
AngularJS 的$timeout服务示例代码
2017/09/21 Javascript
VUE饿了么树形控件添加增删改功能的示例代码
2017/10/17 Javascript
详解node.js 下载图片的 2 种方式
2018/03/02 Javascript
js实现类选择器和name属性选择器的示例步骤
2021/02/07 Javascript
跟老齐学Python之集合的关系
2014/09/24 Python
python获取本机外网ip的方法
2015/04/15 Python
python查看zip包中文件及大小的方法
2015/07/09 Python
详解Django中的过滤器
2015/07/16 Python
Python中__init__.py文件的作用详解
2016/09/18 Python
Python单元测试工具doctest和unittest使用解析
2019/09/02 Python
解决Python二维数组赋值问题
2019/11/28 Python
Python 实现一行输入多个数字(用空格隔开)
2020/04/29 Python
Python中的wordcloud库安装问题及解决方法
2020/05/27 Python
Python修改DBF文件指定列
2020/12/19 Python
Python Spyder 调出缩进对齐线的操作
2021/02/26 Python
css3 2D图片转动样式可以扩充到Js当中
2014/04/29 HTML / CSS
Cecil Mode法国在线商店:女性时尚
2021/01/08 全球购物
一套带答案的C++笔试题
2014/01/10 面试题
C#如何允许一个类被继承但是避免这个类的方法被重载?
2015/02/24 面试题
设计模式的基本要素是什么
2014/04/21 面试题
擅自离岗检讨书
2014/02/11 职场文书
2014党员自我评议表范文
2014/09/20 职场文书
七年级作文之雪景
2019/11/18 职场文书
浅谈Redis的几个过期策略
2021/05/27 Redis
浅谈什么是SpringBoot异常处理自动配置的原理
2021/06/21 Java/Android
php png失真的原因及解决办法
2021/10/24 PHP
电脑无法安装Windows 11怎么办?无法安装Win11的解决方法
2021/11/21 数码科技
MySQL范围查询优化的场景实例详解
2022/06/10 MySQL
关于Redis的主从复制及哨兵问题
2022/06/16 Redis