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 相关文章推荐
粗略计算在线时间,bug:ip相同
Dec 09 PHP
PHP中删除变量时unset()和null的区别分析
Jan 27 PHP
php中防止伪造跨站请求的小招式
Sep 02 PHP
php中邮箱地址正则表达式实现与详解
Apr 24 PHP
smarty缓存用法分析
Dec 16 PHP
php实现网站留言板功能
Nov 04 PHP
Zend Framework教程之分发器Zend_Controller_Dispatcher用法详解
Mar 07 PHP
PHP正则获取页面所有图片地址
Mar 23 PHP
PHP中key和current,next的联合运用实例分析
Mar 29 PHP
Yii使用smsto短信接口的函数demo示例
Jul 13 PHP
PHP实现求解最长公共子串问题的方法
Nov 17 PHP
解决windows上php xdebug 无法调试的问题
Feb 19 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
2019十大人气国漫
2020/03/13 国漫
十天学会php(2)
2006/10/09 PHP
PHP个人网站架设连环讲(四)
2006/10/09 PHP
php基础知识:类与对象(4) 范围解析操作符(::)
2006/12/13 PHP
php中url传递中文字符,特殊危险字符的解决方法
2013/08/17 PHP
PHP判断表单复选框选中状态完整例子
2014/06/24 PHP
php修改指定文件后缀的方法
2014/09/11 PHP
利用PHPStorm如何开发Laravel应用详解
2017/08/30 PHP
Laravel框架下的Contracts契约详解
2020/03/17 PHP
php使用goto实现自动重启swoole、reactphp、workerman服务的代码
2020/04/13 PHP
javascript 解析后的xml对象的读取方法细解
2009/07/25 Javascript
jquery关于图形报表的运用实现代码
2011/01/06 Javascript
使用jQuery内容过滤选择器选择元素实例讲解
2013/04/18 Javascript
限制textbox或textarea输入字符长度的JS代码
2013/10/16 Javascript
JSuggest自动匹配下拉框使用方法(示例代码)
2013/12/27 Javascript
js限制checkbox选中个数以限制六个为例
2014/07/15 Javascript
JavaScript直播评论发弹幕切图功能点集合效果代码
2016/06/26 Javascript
Javascript Event(事件)的传播与冒泡
2017/01/23 Javascript
vue引入微信sdk 实现分享朋友圈获取地理位置功能
2019/07/04 Javascript
Vue中跨域及打包部署到nginx跨域设置方法
2019/08/26 Javascript
基于vue的tab-list类目切换商品列表组件的示例代码
2020/02/14 Javascript
Javascript Worker子线程代码实例
2020/02/20 Javascript
使用Element的InfiniteScroll 无限滚动组件报错的解决
2020/07/27 Javascript
python打开url并按指定块读取网页内容的方法
2015/04/29 Python
linux平台使用Python制作BT种子并获取BT种子信息的方法
2017/01/20 Python
Python封装原理与实现方法详解
2018/08/28 Python
Python将文字转成语音并读出来的实例详解
2019/07/15 Python
TensorFlow 多元函数的极值实例
2020/02/10 Python
师德建设实施方案
2014/03/21 职场文书
暑期学习心得体会
2014/09/02 职场文书
2014年商场国庆节活动策划方案
2014/09/16 职场文书
公安交警个人对照检查材料思想汇报
2014/10/01 职场文书
中国合伙人观后感
2015/06/02 职场文书
2016年第16个全民国防教育日宣传活动总结
2016/04/05 职场文书
Python使用mitmproxy工具监控手机 下载手机小视频
2022/04/18 Python
js作用域及作用域链工作引擎
2022/07/07 Javascript