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

yipeiwu_com6年前PHP代码库

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);

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持【宜配屋www.yipeiwu.com】。

相关文章

简单谈谈 php 文件锁

锁机制之所以存在是因为并发导致的资源竞争,为了确保操作的有效性和完整性,可以通过锁机制将并发状态转换成串行状态。作为锁机制中的一种,PHP的文件锁也是为了应对资源竞争。假设一个应用场景,...

两千行代码的PHP学习笔记汇总

本文汇总了PHP学习中常见的各类问题,约有两千多行代码,都是非常实用的技巧。分享给大家供大家参考。具体如下: //语法错误(syntax error)在语法分析阶段,源代码并未被执行...

php基于str_pad实现卡号不足位数自动补0的方法

自动补足空白位数在php中str_pad函数可以帮我们实现哦,str_pad() 函数把字符串填充为指定的长度。 str_pad() 函数把字符串填充为指定的长度。 语法 str_pad...

php版微信自定义回复功能示例

php版微信自定义回复功能示例

本文实例讲述了php版微信自定义回复功能。分享给大家供大家参考,具体如下: 配置好服务器之后,就可以用php实现自动回复了。 index.php中的代码 <?php...

PHP编程求最大公约数与最小公倍数的方法示例

本文实例讲述了PHP编程求最大公约数与最小公倍数的方法。分享给大家供大家参考,具体如下: //求最大公约数 function max_divisor($a,$b) { $n =...