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

文件操作 php 文件操作 1070      收藏
PHP大文件存储示例,各种文件分割和合并(二进制分割与合并)

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

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

合并方法

<?php  
$mov  = file_get_contents("abc.txt");           //读取分割文件的信息  
$list = explode("\r\n",$mov);  
$fp   = fopen("split.wmv","ab");                  //合并后的文件名  
foreach($list as $value)  
{  
if(!emptyempty($value)) {    
      $handle = fopen($value,"rb");  
    fwrite($fp,fread($handle,filesize($value)));  
      fclose($handle);  
      unset($handle);  
}  
}  
fclose($fp);  
?>