PHP大文件存储示例,各种文件分割和合并(二进制分割与合并)

时间:2022-08-06 20:55:09

最近要对视频进行上传,由于涉及到的视频非常的大,因此采用的是分片上传的格式,下面是一个简单的例子:

split.php

 1 <?php
 2 $i    = 0;                               //分割的块编号
 3 $fp   = fopen("abc.wmv","rb");     //要分割的文件
 4 $file = fopen("split_hash.txt","a");     //记录分割的信息的文本文件
 5 while(!feof($fp))
 6 {
 7         $handle = fopen("abc.wmv.{$i}","wb");
 8         fwrite($handle,fread($fp,5000000));            //5000000 可以自定义.就是每个所分割的文件大小
 9         fwrite($file,"qqdjz_002.wmv.{$i}\r\n");
10         fclose($handle);
11         unset($handle);
12         $i++;
13 }
14 fclose ($fp);
15 fclose ($file);
16 echo "ok";
17 ?>

join.php:

 1 <?php  
 2 $mov  = file_get_contents("abc.txt");           //读取分割文件的信息  
 3 $list = explode("\r\n",$mov);  
 4 $fp   = fopen("split.wmv","ab");                  //合并后的文件名  
 5 foreach($list as $value)  
 6 {  
 7 if(!emptyempty($value)) {    
 8       $handle = fopen($value,"rb");  
 9     fwrite($fp,fread($handle,filesize($value)));  
10       fclose($handle);  
11       unset($handle);  
12 }  
13 }  
14 fclose($fp);  
15 ?>