Андрей Зайцев
67 сообщений
#16 лет назад
Вот скрипт для закачки файлов с локалного компьютера на сервер :
Файл upload.html

<html>
<head>
<title>Загрузка файлов на сервер</title>
</head>
<body>
<h2><p><b> Форма для загрузки файлов </b></p></h2>
<form action="upload.php" method="post" enctype="multipart/form-data">
<input type="file" name="filename"><br>
<input type="submit" value="Загрузить"><br>
</form>
</body>
</html>

Файл upload.php
<html>
<head>
<title>Результат загрузки файла</title>
</head>
<body>

<?php
if($_FILES > 1024*100*1024)
{
echo ("Размер файла превышает три мегабайта");
exit;
}

if(copy($_FILES,"temp/".$_FILES))

{
echo("Файл успешно загружен <br>");
echo("Характеристики файла: <br>");
echo("Имя файла: ");
echo($_FILES);
echo("<br>Размер файла: ");
echo($_FILES);
echo("<br>Каталог для загрузки: ");
echo($_FILES);
echo("<br>Тип файла: ");
echo($_FILES);
}

else

{
echo("Ошибка загрузки файла");
}
?>

</body>
</html>


Помогите пожалуйста переделать этот скрипт так чтобы файлы можно было загружать не с локального ПК на сервер а с другого сайта на этот сервер т.е чтоб просто вставить ссылку на скачиваемый файл который находится на кокомнибуть сайте и он загрузился на этот сервер.
Александр В.
276 сообщений
#16 лет назад
Во первых надо забыть про существование данного скрипта
во вторых: почитать про сокеты, фтп
Андрей Халецкий
3562 сообщения
#16 лет назад
Оффтопик
стесняюсь спросить, а зачем тут сокеты (ну ФТП еще как то связан с загрузкой файлов)...
Станислав Г.
1 сообщение
#16 лет назад
Может fopen/open подойдет?
Юрий Михайловский
5 сообщений
#16 лет назад
В функцию copy можно передавать сразу урл.
Например: copy('

Естественно, что бы пользователь смог ввести урл нужно в форме input поставить типа text, а не file
Андрей Зайцев
67 сообщений
#16 лет назад
Цитата ("Skyter"):
В функцию copy можно передавать сразу урл.
Например: copy('

Естественно, что бы пользователь смог ввести урл нужно в форме input поставить типа text, а не file


Я сделал copy("file/er01.exe","temp/" т.е попробовал со своего же сайта скопировать просто в другую директорию. И вышла ошибка :
Warning: copy(temp/) : failed to open stream: Is a directory in /var/www/plemayshk/main/htdocs/upload.php on line 14
Юрий Михайловский
5 сообщений
#16 лет назад
Copy("file/er01.exe","temp/file01.exe"
Антон С.
15 сообщений
#16 лет назад
Цитата:
if($_FILES > 1024*100*1024)
{
echo ("Размер файла превышает три мегабайта";
exit;
}

Не три а сто =)
Блин Д.
3 сообщения
#16 лет назад
+ учесть докачку в случае хоть малейшего разрыва.

а вообще ftp, либо побайтово читаем, пишем. не забывая, естественно, про запись состояния чтения, чтобы если что - восстановить.

а про этот код: присоединюсь к автору выше - "забыть". забыть касаемо данной цели.
Ярослав Рашук
6 сообщений
#16 лет назад
У кого есть скрипт, готовый, просто. "для загрузки файлов на сервер", постучитесь мне в ICQ: 409 268 068
Алексей Б.
897 сообщений
#16 лет назад

$uploaddir = "/home/mysite.ru/files/";
$file_url = $_POST;
if(isset($file_url) && $file_url!='' && $file_url!='http://')
{
$handle = fopen($file_url, 'r');
$contents = "";
while(!feof($handle))
{
$data = fread($handle, 1048576); // 1mb
$contents .= $data;
}

fclose($handle);
$filename = basename($_POST);
$handle = fopen($uploaddir . $filename, 'w+');
fwrite($handle, $contents);
fclose($handle);
}

Что-то в этом роде.