Скрипт загрузки файлов через URL на PHP

В этой статье буде рассмотрен один из самых правильных, универсальных способов загрузки файла на сервер с URL адреса.

Загрузка файлов на сервер с другого сайта осуществляется путём использования file_get_contents(адрес-файла).

Чтобы узнать размер загруженного файла используйте filesize_get(относительный-адрес-к-загруженному-файлу).

Вот для примера, рабочая конструкция обработчика:

<?PHP
if (!empty($_GET['url']))
{
function filesize_get($file1)
{
// проверяем существует ли файл
if(!file_exists($file1)) return "Файл отсутствуетxzxz.";
//определяем размер файла
$filesize = filesize($file1);
// Если размер переданного в функцию файла больше 1кб
if($filesize > 1024)
{
$filesize = ($filesize/1024);
// если размер файла больше одного килобайта
// пересчитываем в мегабайтах
if($filesize > 1024)
{
$filesize = ($filesize/1024);
// если размер файла больше одного мегабайта
// пересчитываем в гигабайтах
if($filesize > 1024)
{
$filesize = ($filesize/1024);
$filesize = round($filesize, 1);
return $filesize." ГБ";
}
else
{
$filesize = round($filesize, 1);
return $filesize." MБ";
}
}
else
{
$filesize = round($filesize, 1);
return $filesize." Кб";
}
}
else
{
$filesize = round($filesize, 1);
return $filesize." байт";
}
}
$file = basename($_GET['url']);
if (file_get_contents($_GET['url']))
{
$content = file_get_contents($_GET['url']);
$f = fopen( "$file", "w" );
if (fwrite( $f, $content ) === FALSE)
{
echo "Не могу произвести запись в файл.";
exit;
}
else {$filesize = filesize_get($file); echo " Файл <font color='red'>" .$file ."</font> записан.".$filesize;
fclose( $f );}
}
else echo "Не могу качать файл.";
}
?>

Посылайте на жтот обработчик данные с текстового поля с именем url, в который впишите адрес файла и он вам загрузит его в директорию где располагается сам скрипт.

По желанию можно улучшить скрипт, добавив в него, определение типа файла, ограничение по типам файлов и размерам, ну а пока в целях премера так.

Для работы желательно чтобы папка в которую идёт загрузка файла имела права 777.


You have no rights to post comments

Карта сайта