Wednesday, January 19, 2011

Копирование больших файлов с помощью PHP

Для копирования файлов есть функция copy. Однако, если файл копируется заметно долго, эта функция особо не парится - просто прерывает выполнение, оставляя кусок файла.

Есть очень простое и элегантное решение:

function stream_copy($src, $dest)
{
    $fsrc = fopen($src, 'rb');
    if (!$fsrc) return false;
    $fdest = fopen($dest, 'wb');
    if (!$fdest) return false;
    $len = stream_copy_to_stream($fsrc, $fdest);
    fclose($fsrc);
    fclose($fdest);
    return $len;
}

No comments: