php下载远程大文件(获取远程文件大小)的实例

 更新时间:2017年06月17日 09:50:28   投稿:jingxian  
下面小编就为大家带来一篇php下载远程大文件(获取远程文件大小)的实例。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

废话不多说,直接上代码

<?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下载远程大文件(获取远程文件大小)的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • ThinkPHP之import方法实例详解

    ThinkPHP之import方法实例详解

    import方法是ThinkPHP框架用于类库导入的封装实现,这篇文章主要介绍了ThinkPHP的import方法,需要的朋友可以参考下
    2014-06-06
  • Laravel中Kafka的使用详解

    Laravel中Kafka的使用详解

    这篇文章主要介绍了Laravel中Kafka的使用详解,kafka是一个分布式消息队列,具有高性能、持久化、多副本备份、横向扩展能力,有对于消息队列感兴趣的同学可以参考下
    2021-03-03
  • PHP检查URL包含特定字符串实例方法

    PHP检查URL包含特定字符串实例方法

    在本篇文章里,小编给大家分享了使用PHP检查URL是否包含特定字符串的相关操作方法,有需要的朋友们学习下。
    2019-02-02
  • Zend Framework入门教程之Zend_Registry组件用法详解

    Zend Framework入门教程之Zend_Registry组件用法详解

    这篇文章主要介绍了Zend Framework入门教程之Zend_Registry组件用法,结合实例形式分析了Zend_Registry组件实现对象注册的设置、获取、判断、删除等操作常用技巧,需要的朋友可以参考下
    2016-12-12
  • 基于ubuntu下nginx+php+mysql安装配置的具体操作步骤

    基于ubuntu下nginx+php+mysql安装配置的具体操作步骤

    本篇文章介绍了,基于ubuntu下nginx+php+mysql安装配置的具体操作步骤。需要的朋友参考下
    2013-04-04
  • php伪静态之APACHE篇

    php伪静态之APACHE篇

    mod_rewrite是Apache的一个非常强大的功能,它可以实现伪静态页面。下面我详细说说它的使用方法!对初学者很有用的哦!
    2014-06-06
  • Yii2框架实现利用mpdf创建pdf文件功能示例

    Yii2框架实现利用mpdf创建pdf文件功能示例

    这篇文章主要介绍了Yii2框架实现利用mpdf创建pdf文件功能,结合实例形式分析了mpdf的下载、安装及结合Yii2框架创建pdf文件的相关操作技巧,需要的朋友可以参考下
    2019-02-02
  • Base64在线编码解码实现代码 演示与下载

    Base64在线编码解码实现代码 演示与下载

    最近遇到的几个程序的加密方式都是Base64加密,很是晕菜,临时整了个在线转换,但是也不全部能搞定,呵呵也许还有不行的,希望对后来人有所帮助。
    2011-01-01
  • php注册和登录界面的实现案例(推荐)

    php注册和登录界面的实现案例(推荐)

    下面小编就为大家带来一篇php注册和登录界面的实现案例(推荐)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-10-10
  • laravel实现前后台路由分离的方法

    laravel实现前后台路由分离的方法

    今天小编就为大家分享一篇laravel实现前后台路由分离的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-10-10

最新评论