php断点续传之文件分割合并详解


Posted in PHP onDecember 13, 2016

php实现断点续传,就需要把大文件分割成多个小文件,然后单个上传。传完后在合并。

│ merge.php ?合并文件脚本
│ merge.zip ?合并后文件
│ socket.zip ?需要分割的文件
│ split.php ?分割文件脚本

└─split ?分割后小文件目录

下面是源码

split.php

<?php

$fp = fopen("socket.zip", "rb");
$filesize = 10;
$i = 0;
$no = 1;
while(!feof($fp))
{
  $file = fread($fp, $filesize);

  $fp2 = fopen("./split/socket.port".sprintf("%04d",$no).".".$i."-".($i+$filesize).".tmp", "wb");
  fwrite($fp2, $file, $filesize);
  fclose($fp2);
  $i+=$filesize+1;
$no++;
}

fclose($fp);

merge.php

<?php
$filelist = glob('./split/*socket*.tmp');
$filesize = 10;

//print_r($filelist);
$mergeFileName = 'merg.zip';

unlink($mergeFileName);
  $fp2 = fopen($mergeFileName,"w+");
foreach($filelist as $k => $v)
{
  $fp = fopen($v, "rb");
   $content = fread($fp, $filesize);

   fwrite($fp2, $content, $filesize);
   unset($content);
   fclose($fp);
   echo $k,"\n";
}
  fclose($fp2);

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

PHP 相关文章推荐
php类
Nov 27 PHP
PHP 中执行排序与 MySQL 中排序
Apr 21 PHP
让你成为更出色的PHP开发者的10个技巧
Feb 25 PHP
浅析关于PHP位运算的简单权限设计
Jun 30 PHP
php获取bing每日壁纸示例分享
Feb 25 PHP
php查找字符串出现次数的方法
Dec 01 PHP
php数组添加元素方法小结
Dec 20 PHP
php三种实现多线程类似的方法
Oct 30 PHP
解决PHP上传非标准格式的图片pjpeg失败的方法
Mar 12 PHP
php制作圆形用户头像的实例_自定义封装类源代码
Sep 18 PHP
Vagrant(WSL)+PHPStorm+Xdebu 断点调试环境搭建
Dec 13 PHP
PHP获取php,mysql,apche的版本信息及更多服务器信息
Mar 09 PHP
php json_encode与json_decode详解及实例
Dec 13 #PHP
php页面跳转session cookie丢失导致不能登录等问题的解决方法
Dec 12 #PHP
php一个文件搞定微信jssdk配置
Dec 12 #PHP
php自定义扩展名获取函数示例
Dec 12 #PHP
DWZ+ThinkPHP开发时遇到的问题分析
Dec 12 #PHP
php中引用&amp;的用法分析【变量引用,函数引用,对象引用】
Dec 12 #PHP
简单谈谈PHP中的Reload操作
Dec 12 #PHP
You might like
利用PHP实现开心消消乐的算法示例
2017/10/12 PHP
var与Javascript变量隐式声明
2009/09/17 Javascript
使用JS进行目录上传(相当于批量上传)
2010/12/05 Javascript
JavaScript 用cloneNode方法克隆节点的代码
2012/10/15 Javascript
JAVASCRIPT代码编写俄罗斯方块网页版
2015/11/26 Javascript
jQuery插件扩展extend的简单实现原理
2016/06/24 Javascript
Three.js学习之文字形状及自定义形状
2016/08/01 Javascript
Vue 2.0学习笔记之使用$refs访问Vue中的DOM
2017/12/19 Javascript
简单通过settimeout看javascript的运行机制
2019/05/10 Javascript
ES6基础之字符串和函数的拓展详解
2019/08/22 Javascript
小程序中设置缓存过期的实现方法
2020/01/14 Javascript
基于vue实现微博三方登录流程解析
2020/11/04 Javascript
vue element-ul实现展开和收起功能的实例代码
2020/11/25 Vue.js
nodeJs项目在阿里云的简单部署
2020/11/27 NodeJs
Node.js 中如何收集和解析命令行参数
2021/01/08 Javascript
[46:14]VGJ.T vs Liquid 2018国际邀请赛小组赛BO2 第一场 8.19
2018/08/21 DOTA
利用soaplib搭建webservice详细步骤和实例代码
2013/11/20 Python
Python学习之asyncore模块用法实例教程
2014/09/29 Python
python中随机函数random用法实例
2015/04/30 Python
pandas实现选取特定索引的行
2018/04/20 Python
numpy判断数值类型、过滤出数值型数据的方法
2018/06/09 Python
pyQt4实现俄罗斯方块游戏
2018/06/26 Python
基于numpy中数组元素的切片复制方法
2018/11/15 Python
python的常用模块之collections模块详解
2018/12/06 Python
Python Pandas 箱线图的实现
2019/07/23 Python
Django之富文本(获取内容,设置内容方式)
2020/05/21 Python
pycharm 使用tab跳出正在编辑的括号(){}{}等问题
2021/02/26 Python
英国领先的露营和露营车品牌之一:OLPRO
2019/08/06 全球购物
入职担保书范文
2014/05/21 职场文书
孩子教育的心得体会
2014/09/01 职场文书
2014年化工厂工作总结
2014/11/25 职场文书
2015年小学体育教师工作总结
2015/10/23 职场文书
Python+Tkinter打造签名设计工具
2022/04/01 Python
《仙剑客栈2》第一弹正式宣传片公开 年内发售
2022/04/07 其他游戏
解决 Redis 秒杀超卖场景的高并发
2022/04/12 Redis
MySQL 原理与优化之Limit 查询优化
2022/08/14 MySQL