Описание :

Как загрузить файл на сервер по ссылке?

Описание:

Порой бывает необходимо загрузить тот или иной файл на сервер не с локального компьютера, а с другого сервера по ссылке. Понадобиться это может в разных ситуациях, например, при загрузке видео с Youtube, как это реализовано на Savefrom.net. Скрипт простой, и в большинстве ситуаций будет работать исправно, однако, нужно обратить внимание, что в настройках php.ini опция allow_url_fopen должна быть установлена в true.

Скрипт:

// загрука файла по url адресу
function downloadFileByURL($url, $whereToSave) {

    // файл-источник для чтения
    // rb - бинарное чтение, так как файл может быть и не текстовым
    $source = fopen($url, "rb");

    // если есть такой файл
    if ($source) {

        // файл-приемник на сервере
        // wb - бинарная запись
        $dest = fopen ($whereToSave, "wb");

        // если удалось создать файл-приемник на сервере
        if ($dest){

            // пока есть данные из файл-источника
            while(!feof($source)) {

                // считываем их блоками по 4Кб
                fwrite($dest, fread( $source, 4096 ));
            }

            // закрываем файл-приемник
            fclose($dest);
        }
        
        // закрываем файл-источник
        fclose($source);
    }
}

Конечно этот скрипт не идеален, так как в некоторых случаях может понадобиться отправить вместе с запросом на загрузку, еще и какие-то http заголовки, но, для простых целей он вполне пригоден.

Вот так просто, можно организовать загрузку файлов на сервер по url в PHP.