Как загрузить файл на сервер по ссылке?
![Как загрузить файл на сервер по ссылке?](/images/articles/php-upload-file-by-url.jpg)
Описание:
Порой бывает необходимо загрузить тот или иной файл на сервер не с локального компьютера, а с другого сервера по ссылке. Понадобиться это может в разных ситуациях, например, при загрузке видео с 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.
-
-
Михаил Русаков
Комментарии (0):
Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.