// 大文件分割成多个等分(除最后一片)大小文件
$path = '/Users/ShaniaV/Desktop/testcode_local/';
// $fileName = 'PRD-1030版本-20200819.docx'
$fileName = 'PRD-1030版本-20200818.docx';
$filePath = $path . $fileName; //被分割文件完整路径
$i = 0; //分割的块编号
$fp = fopen($filePath,"rb"); //要分割的文件
$file = fopen($path."split_filepath.txt","a"); //记录分割的信息的文本文件路径,实际生产环境存在redis更合适
while(!feof($fp)){
$tmpFile = $path . "splitdir/{$fileName}.{$i}"; // 切割后的文件存储完整路径,包含文件名
$handle = fopen($tmpFile,"wb");
fwrite($handle,fread($fp,5242880));//切割的块大小 5M(1024*1024*5=5242880)
// fwrite($handle,fread($fp,5000000));//切割的块大小
fwrite($file,"{$tmpFile}\r\n");
fclose($handle);
unset($handle);
$i++;
}
fclose ($fp);
fclose ($file);
echo "ok";
php文件分割,将分割后的文件存储在某路径下,并记录分割后的文件的存储完整路径。