Как разбить один файл на несколько частей с помощью php? - PullRequest
0 голосов
/ 15 апреля 2019

Я ищу код для разделения одного файла на несколько файлов, как торрент.

Я собираюсь попробовать это как веб-приложение.Поэтому мне нужен код для back-end

Когда пользователь вводит файл размером 200 Мб;вывод должен разбивать файл на более мелкие части, например, 20 КБ / файл

1 Ответ

0 голосов
/ 15 апреля 2019

Вот, пожалуйста ...

// 20 KB
$partSize = 20 * 1024;
$fileSize = filesize($theFile);

$fileNameTemplate = __DIR__ . '/split_no_%04d.whatever';
$fileHandle = fopen($theFile, 'r');
$counter = 0;
while($fileSize > 0 && !feof($fileHandle)) {
    $counter++;
    // create a new filename
    $newFile = sprintf($fileNameTemplate, $counter);
    // open new file
    $writeHandle = fopen($newFile, 'w');
    // read portion of the big file
    $content = fread($fileHandle, $partSize);
    // write it to the new file
    $written = fwrite($writeHandle, $content);
    // close file pointer
    fclose($writeHandle);
    // adjust remaining bytes
    $fileSize -= $written;

    echo '- '. $written . ' bytes'. PHP_EOL;
}
...