php断点续传时如何把大文件分割的源码分享
php实现断点续传,就需要把大文件分割成多个小文件,然后单个上传。传完后在合并。
- │ merge.php –合并文件脚本
- │ merge.zip –合并后文件
- │ socket.zip –需要分割的文件
- │ split.php –分割文件脚本
- │
- └─split –分割后小文件目录
下面是源码:
split.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
- $filelist=glob('./split/*socket*.tmp');
- $filesize= 10;
- //print_r($filelist);
- $mergeFileName='merg.zip';
- unlink($mergeFileName);
- $fp2=fopen($mergeFileName,"w+");
- foreach($filelistas$k=>$v)
- {
- $fp=fopen($v,"rb");
- $content=fread($fp,$filesize);
- fwrite($fp2,$content,$filesize);
- unset($content);
- fclose($fp);
- echo$k,"\n";
- }
- fclose($fp2);