PHP实现断点续传乱序合并文件的方法


Posted in PHP onSeptember 06, 2018

本文实例讲述了PHP实现断点续传乱序合并文件的方法。分享给大家供大家参考,具体如下:

分割成多个文件发送,由于网络原因并不上先发就能发接收到。所以我们不能按顺序合并。

分割文件源码前面一篇文章《PHP断点续传之文件分割合并》

merge2.php

<?php
$fileTotaiSize = filesize("socket.zip");
$filelist = glob('./split/*socket*.tmp');
$filesize = 3096;
//打乱读取文件顺序
shuffle($filelist);
$mergeFileName = 'merg2.zip';
 if(is_file($mergeFileName))
 {
 unlink($mergeFileName);
 }
 $fp2 = fopen($mergeFileName,"w+");
 //创建空白文件
 $str = str_pad('',$fileTotaiSize);
 fwrite($fp2, $str, $fileTotaiSize);
foreach($filelist as $k => $v)
{
 $tmp = explode('.',$v);
 $len = explode('-', $tmp[3]);
 $offset = (int) $len[0];
 $fp = fopen($v, "rb");
 $content = fread($fp, $filesize);
  echo $offset, "\n";
  fseek($fp2, $offset);
  fwrite($fp2, $content, strlen($content));
  unset($content);
  fclose($fp);
}
fclose($fp2);

补充:前文中的分割文件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);

希望本文所述对大家PHP程序设计有所帮助。

PHP 相关文章推荐
php下删除字符串中HTML标签的函数
Aug 27 PHP
php获取文件内容最后一行示例
Jan 09 PHP
dedecms函数分享之获取某一栏目所有子栏目
May 19 PHP
smarty中英文多编码字符截取乱码问题解决方法
Oct 28 PHP
php实现俄罗斯乘法实例
Mar 07 PHP
PHP使用mysql_fetch_row查询获得数据行列表的方法
Mar 18 PHP
php调用KyotoTycoon简单实例
Apr 02 PHP
php中get_magic_quotes_gpc()函数说明
Feb 06 PHP
Thinkphp5结合layer弹窗定制操作结果页面
Jul 07 PHP
PHP编程实现微信企业向用户付款的方法示例
Jul 26 PHP
PHP检查文件是否存在,不存在自动创建及读取文件内容操作示例
Jan 23 PHP
PHP替换Word中变量并导出PDF图片的实现方法
Nov 26 PHP
php JWT在web端中的使用方法教程
Sep 06 #PHP
php进程daemon化的正确实现方法
Sep 06 #PHP
让Laravel API永远返回JSON格式响应的方法示例
Sep 05 #PHP
thinkPHP框架实现类似java过滤器的简单方法示例
Sep 05 #PHP
PHP使用pdo实现事务处理操作示例
Sep 05 #PHP
Django 标签筛选的实现代码(一对多、多对多)
Sep 05 #PHP
利用PHP扩展Xhprof分析项目性能实践教程
Sep 05 #PHP
You might like
一个基于phpQuery的php通用采集类分享
2014/04/09 PHP
php通过baihui网API实现读取word文档并展示
2015/06/22 PHP
JS中字符问题(二进制/十进制/十六进制及ASCII码之间的转换)
2008/11/03 Javascript
javascript form 验证函数 弹出对话框形式
2009/06/23 Javascript
用showModalDialog弹出页面后,提交表单总是弹出一个新窗口
2009/07/18 Javascript
HTML颜色选择器实现代码
2010/11/23 Javascript
Extjs4 GridPanel的主要配置参数详细介绍
2013/04/18 Javascript
异步安全加载javascript文件的方法
2015/07/21 Javascript
JS实现弹性漂浮效果的广告代码
2015/09/02 Javascript
详解javascript的变量与标识符
2016/01/04 Javascript
Ionic如何实现下拉刷新与上拉加载功能
2016/06/03 Javascript
概述BootStrap中role=&quot;form&quot;及role作用角色
2016/12/08 Javascript
jQuery快速实现商品数量加减的方法
2017/02/06 Javascript
js仿新浪微博消息发布功能
2017/02/17 Javascript
对Vue beforeRouteEnter 的next执行时机详解
2018/08/25 Javascript
jquery实现自定义树形表格的方法【自定义树形结构table】
2019/07/12 jQuery
jquery插件开发模式实例详解
2019/07/20 jQuery
nodejs使用Sequelize框架操作数据库的实现
2020/10/21 NodeJs
[04:52]DOTA2亚洲邀请赛附加赛 TOP10精彩集锦
2015/01/29 DOTA
[01:09:50]VP vs Pain 2018国际邀请赛小组赛BO2 第二场
2018/08/20 DOTA
Python压缩和解压缩zip文件
2015/02/14 Python
python的unittest测试类代码实例
2017/12/07 Python
Python之批量创建文件的实例讲解
2018/05/10 Python
python PrettyTable模块的安装与简单应用
2019/01/11 Python
python使用turtle库绘制奥运五环
2020/02/24 Python
python批量生成身份证号到Excel的两种方法实例
2021/01/14 Python
美国现代家具购物网站:LexMod
2019/01/09 全球购物
消防器材管理制度
2014/01/28 职场文书
大二法英学生职业生涯规划范文
2014/02/27 职场文书
生日主持词
2014/03/20 职场文书
共产党员承诺书
2014/03/25 职场文书
升职演讲稿范文
2014/05/23 职场文书
毕业生求职信范文
2014/06/29 职场文书
运动员获奖感言
2014/08/15 职场文书
2014年小学少先队工作总结
2014/12/18 职场文书
结婚老公保证书
2015/02/26 职场文书