2019独角兽企业重金招聘Python工程师标准>>>

下载 download.php

<?php
$file = './Penguins.jpg';
$file_display_name = basename($file);
$fsize = @filesize($file);
if (!empty($fsize)) {           $start = null ; $end = $fsize - 1;if (isset($_SERVER['HTTP_RANGE']) && ($_SERVER['HTTP_RANGE'] != "") && preg_match("/^bytes=([0-9]+)-([0-9]*)$/i", $_SERVER['HTTP_RANGE'], $match) && ($match[1] < $fsize) && ($match[2] < $fsize)) {     $start = $match[1]; if (!empty($match[2]))$end = $match[2];}header("Cache-control: public"); header("Pragma: public"); if ($start === null) {header("HTTP/1.1 200 OK");header("Content-Length: $fsize");header("Accept-Ranges: bytes");} else {                  header("HTTP/1.1 206 Partial Content");     header("Content-Length: " . ($end - $start + 1));     header("Content-Ranges: bytes " . $start . "-" . $end . "/" . $fsize); }header("Content-Type: application/octet-stream"); header("Content-Disposition: attachment; filename=" . urlencode ( $file_display_name ) );ob_clean();flush();$fp = fopen($file, "rb");fseek($fp,$start);$chunk = 8192;while(($nowNum = ftell($fp)) < $end){if($nowNum >= ($end - $chunk)){$chunk = $end - $nowNum + 1;}echo fread($fp, $chunk );}fclose($fp);exit();
}else {header("HTTP/1.1 404 Not Found");header('Content-Type: text/html; charset=utf-8');
}

上传 upload.php

<?php
$file = './test.jpg';
$fsize = 0;
$start = 0;
$end = null ;
if (isset($_SERVER['HTTP_CONTENT_RANGES']) && ($_SERVER['HTTP_CONTENT_RANGES'] != "") && preg_match('/^bytes ([0-9]+)-([0-9]+)\/([0-9]+)$/i', $_SERVER['HTTP_CONTENT_RANGES'], $match) ) {$start = $match[1];if (!empty($match[2]))$end = $match[2];if (!empty($match[3]) && empty($filesize))$filesize = $match[3];
}
if (empty($filesize) && isset($_SERVER['CONTENT_LENGTH'])){$filesize = $_SERVER['CONTENT_LENGTH'];
}$fp = fopen("php://input",'rb');
if(is_resource($fp))
{$fpu = fopen($file, "wb");if ($start > 0)fseek($fpu, $start);while($data = fread($fp, 8192)){if (!empty($data))fwrite($fpu, $data);}                fclose($fpu);
}
fclose($fp);

转载于:https://my.oschina.net/zhuzhu0129/blog/56729

php http 断点续传相关推荐

  1. asp.net断点续传技术

    断点续传的原理 在了解HTTP断点续传的原理之前,先来说说HTTP协议,HTTP协议是一种基于tcp的简单协议,分为请求和回复两种.请求协议是由客户机(浏览器)向服务器(WEB SERVER)提交请求 ...

  2. Asp.net(c#)实现多线程断点续传

    http://www.cnblogs.com/bestcomy/archive/2004/08/10/31950.html 以前一直错误的认为在ASP.NET中无法通过编程方式实现多线程断点续传,今天 ...

  3. ASP.NET WebAPi之断点续传下载(下)

    前言 上一篇我们穿插了C#的内容,本篇我们继续来讲讲webapi中断点续传的其他情况以及利用webclient来实现断点续传,至此关于webapi断点续传下载以及上传内容都已经全部完结,一直嚷嚷着把S ...

  4. FTP、HTTP断点续传和多线程的协议基础

    使用FTP或HTTP协议的下载软件支持断点续传和多线程的协议基础是: FTP用的是REST和SIZE:HTTP用的是Range. 1.FTP实现断点续传的协议基础 REST(有的服务器可能不支持此命令 ...

  5. 使用 NSURLSession 开发一个支持后台下载和断点续传的下载工具

    NSURLSession 是 iOS 系统提供给我们的原生网络操作库,它提供了网络操作相关的一系列特性支持,比如缓存控制,Cookie管理,HTTP 认证处理等等,是一套整体的网络操作处理解决方案. ...

  6. Java断点续传(基于socket与RandomAccessFile的实现)

    这是一个简单的C/S架构,基本实现思路是将服务器注册至某个空闲端口用来监视并处理每个客户端的传输请求. 客户端先获得用户给予的需传输文件与目标路径,之后根据该文件实例化RandomAccessFile ...

  7. 带进度条的ASP无组件断点续传下载代码

    <%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%> <%Option Explicit%> <% '= ...

  8. 大文件上传服务器:支持超大文件HTTP断点续传的实现办法

    点击上方蓝色"方志朋",选择"设为星标"回复"666"获取独家整理的学习资料! 来源:blog.csdn.net/ababab12345/a ...

  9. iOS开发之网络编程--使用NSURLConnection实现大文件断点续传下载

    前言:iOS开发之网络编程--使用NSURLConnection实现大文件断点续传下载是在前篇iOS开发之网络编程--使用NSURLConnection实现大文件下载的基础上进行    断点续传的设置 ...

  10. php 断点续传,php支持断点续传的文件下载类(附源码)

    /** php下载类,支持断点续传 * Date: 2013-06-30 * Author: fdipzone * Ver: 1.0 * edit: ww.jbxue.com * Func: * do ...

最新文章

  1. EAS中的管理单元、组织单元理解
  2. 高性能IO -Reactor模式的实现
  3. 【Android 应用开发】 自定义组件 宽高适配方法, 手势监听器操作组件, 回调接口维护策略, 绘制方法分析 -- 基于 WheelView 组件分析自定义组件
  4. SpringBoot中自定义消息转化器
  5. 【STM32】keil软件常用使用技巧
  6. 【Linux】目录组织结构、文件类型和文件权限
  7. mysql约束与外键_MySQL 外键与约束
  8. 神经网络填充(padding)
  9. java冒泡排序算法代码降序_Java排序算法总结之冒泡排序
  10. 使用octomap_server将点云地图转化为八叉树地图和占据栅格地图
  11. physx: pid balance controll
  12. HttpServletRequest获取路径的几个方法
  13. 15、Access数据库偏移注入
  14. 2022年科技期刊最新影响因子在线查询
  15. 如何用Python爬取网易云歌曲?秘诀在这~
  16. oracle mapviewer 11g安装使用,Oracle MapViewer11g安装与部署
  17. 基于集成学习的不平衡数据集分类问题研究--文献阅读
  18. Python Scrapy 多线程爬取网易云音乐热门歌单信息(手把手教学)
  19. 玩骰子(概率,暴力)
  20. Vue2实现响应式布局方案

热门文章

  1. html判断ie6,jquery如何判断是否是ie?
  2. python自助电影售票机_Spring Cloud版——电影售票系统六使用 Spring Cloud Config 统一管理微服务配置...
  3. ta leader是什么岗位_阿里专家:如何成为一名“值得跟”的Leader?
  4. ubuntu java对比win_Ubuntu PK Vista Java性能大比拼
  5. java 处理时间的类_java 日期时间处理类
  6. 成员变量隐藏c语言,C语言中隐藏结构体的细节
  7. Node.js webpack Vue单文件
  8. C语言 Win动态库
  9. tesseract linux 训练
  10. matplotlib.patches.Polygon