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数组最大值,最小值的代码
Oct 31 PHP
php实现编辑和保存文件的方法
Jul 20 PHP
php关键字仅替换一次的实现函数
Oct 29 PHP
php项目开发中用到的快速排序算法分析
Jun 25 PHP
php错误日志简单配置方法
Jul 11 PHP
php验证身份证号码正确性的函数
Jul 20 PHP
值得分享的php+ajax实时聊天室
Jul 20 PHP
php 实现一个字符串加密解密的函数实例代码
Nov 01 PHP
浅谈PHP中的面向对象OOP中的魔术方法
Jun 12 PHP
php检测mysql表是否存在的方法小结
Jul 20 PHP
PHP文件系统管理(实例讲解)
Sep 19 PHP
自定义Laravel (monolog)日志位置,并增加请求ID的实现
Oct 17 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
合作指挥官:孟斯克
2020/03/16 星际争霸
基于session_unset与session_destroy的区别详解
2013/06/03 PHP
PHP判断表单复选框选中状态完整例子
2014/06/24 PHP
配置php.ini实现PHP文件上传功能
2014/11/27 PHP
PHP实现文件上传和多文件上传
2015/12/24 PHP
yii2控制器Controller Ajax操作示例
2016/07/23 PHP
php连接mysql数据库
2017/03/21 PHP
JQGrid的用法解析(列编辑,添加行,删除行)
2013/11/08 Javascript
Mac地址验证的javascript代码
2013/11/09 Javascript
使用CSS样式position:fixed水平滚动的方法
2014/02/19 Javascript
Javascript仿PHP $_GET获取URL中的参数
2014/05/12 Javascript
jquery模拟LCD 时钟的html文件源代码
2014/06/16 Javascript
学习JavaScript设计模式(策略模式)
2015/11/26 Javascript
JavaScript判断变量是否为数组的方法(Array)
2016/02/24 Javascript
详解Node.js中的事件机制
2016/09/22 Javascript
Avalonjs 实现简单购物车功能(实例代码)
2017/02/07 Javascript
深入学习 JavaScript中的函数调用
2017/03/23 Javascript
JavaScript数据类型和变量_动力节点Java学院整理
2017/06/26 Javascript
Async Validator 异步验证使用说明
2017/07/03 Javascript
浅谈在vue项目中如何定义全局变量和全局函数
2017/10/24 Javascript
node 命令方式启动修改端口的方法
2018/05/12 Javascript
vue router的基本使用和配置教程
2018/11/05 Javascript
angularjs模态框的使用代码实例
2019/12/20 Javascript
python 专题九 Mysql数据库编程基础知识
2017/03/16 Python
Python实现的多项式拟合功能示例【基于matplotlib】
2018/05/15 Python
Python常见数据结构之栈与队列用法示例
2019/01/14 Python
如何在Django中设置定时任务的方法示例
2019/01/18 Python
python+pyqt5实现KFC点餐收银系统
2019/01/24 Python
python接口自动化如何封装获取常量的类
2019/12/24 Python
python 发送邮件的示例代码(Python2/3都可以直接使用)
2020/12/03 Python
pycharm 使用anaconda为默认环境的操作
2021/02/05 Python
Yahoo的PHP面试题
2014/05/26 面试题
2014年最新领导班子整改方案
2014/09/27 职场文书
4S店销售内勤岗位职责
2015/04/13 职场文书
pytorch 使用半精度模型部署的操作
2021/05/24 Python
《英雄联盟》2022日蚀、月蚀皮肤演示 黑潮亚索曝光
2022/04/13 其他游戏