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 文件上传系统手记
Oct 26 PHP
php Smarty模板生成html文档的方法
Apr 12 PHP
php函数的常用方法及注意之处小结
Jul 10 PHP
解析如何去掉CodeIgniter URL中的index.php
Jun 25 PHP
利用curl抓取远程页面内容的示例代码
Jul 23 PHP
PHP过滤★等特殊符号的正则
Jan 27 PHP
利用Fix Rss Feeds插件修复WordPress的Feed显示错误
Dec 19 PHP
Yii使用Captcha验证码的方法
Dec 28 PHP
ThinkPHP防止重复提交表单的方法实例分析
May 10 PHP
详解PHP实现支付宝小程序用户授权的工具类
Dec 25 PHP
PHP SESSION机制的理解与实例
Mar 22 PHP
laravel框架与其他框架的详细对比
Oct 23 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
香妃
2021/03/03 冲泡冲煮
php xml文件操作代码(一)
2009/03/20 PHP
用Zend Encode编写开发PHP程序
2010/02/21 PHP
JS去除字符串的空格增强版(可以去除中间的空格)
2009/08/26 Javascript
JQuery 插件制作实践 xMarquee插件V1.0
2010/04/02 Javascript
js操作select控件的几种方法
2010/06/02 Javascript
node.js 使用ejs模板引擎时后缀换成.html
2015/04/22 Javascript
JavaScript实现LI列表数据绑定的方法
2015/08/04 Javascript
jQuery实现的点赞随机数字显示动画效果(附在线演示与demo源码下载)
2015/12/31 Javascript
JS控制层作圆周运动的方法
2016/06/20 Javascript
Angular2 组件交互实例详解
2017/08/24 Javascript
NodeJS实现不可逆加密与密码密文保存的方法
2018/03/16 NodeJs
centos 上快速搭建ghost博客方法分享
2018/05/23 Javascript
轻松学习JavaScript函数中的 Rest 参数
2019/05/30 Javascript
Vue设置长时间未操作登录自动到期返回登录页
2020/01/22 Javascript
VUE中鼠标滚轮使div左右滚动的方法详解
2020/12/14 Vue.js
在Python中使用NLTK库实现对词干的提取的教程
2015/04/08 Python
使用Python脚本来获取Cisco设备信息的示例
2015/05/04 Python
MySQL中表的复制以及大型数据表的备份教程
2015/11/25 Python
Python设计模式之组合模式原理与用法实例分析
2019/01/11 Python
python实现维吉尼亚加密法
2019/03/20 Python
django框架使用orm实现批量更新数据的方法
2019/06/21 Python
对PyQt5的输入对话框使用(QInputDialog)详解
2019/06/25 Python
python读文件的步骤
2019/10/08 Python
将自己的数据集制作成TFRecord格式教程
2020/02/17 Python
python 三种方法实现对Excel表格的读写
2020/11/19 Python
CSS3常用的几种颜色渐变模式总结
2016/11/18 HTML / CSS
详解Sticky Footer 绝对底部的两种套路
2017/11/03 HTML / CSS
俄罗斯品牌服装和鞋子在线商店:BRIONITY
2020/03/26 全球购物
自主招生自荐书
2013/11/29 职场文书
大学生村官任职感言
2014/01/09 职场文书
简短大学毕业感言
2014/01/18 职场文书
我们的节日清明节活动总结
2014/04/30 职场文书
不听老师话的万能检讨书
2014/10/04 职场文书
分享MySQL常用 内核 Debug 几种常见方法
2022/03/17 MySQL
Python超详细分步解析随机漫步
2022/03/17 Python