Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Интернет » Web-программирование » Web-Download через wget

Модерирует : Cheery

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3

Открыть новую тему     Написать ответ в эту тему

Ezhyk



BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Помогите плз простым скриптом, выглядящим как окно для ввода веб-адреса.
 
Принцип работы таков: ввел адрес, нажал ENTER, скрипт дал коману серверу, запустил wget, и wget скачал нужный файл в нужную папку на серверe.
 
Заранее большое спасибо.

Всего записей: 362 | Зарегистр. 06-04-2004 | Отправлено: 21:18 12-10-2004 | Исправлено: Ezhyk, 21:22 12-10-2004
kisin

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Ezhyk это уже неоднократно обсуждалось!:
http://forum.ru-board.com/topic.cgi?forum=31&topic=6313#1
http://forum.ru-board.com/topic.cgi?forum=24&topic=4431#1
http://forum.ru-board.com/topic.cgi?forum=31&topic=0240#1

Всего записей: 613 | Зарегистр. 30-12-2003 | Отправлено: 23:29 12-10-2004
Ezhyk



BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
К сожалению там я ничего по своему вопросу не нашел.
Вроде всё просто, неужели никто с этим не сталкивался и не в курсе как это сделать?
 

Всего записей: 362 | Зарегистр. 06-04-2004 | Отправлено: 01:23 13-10-2004
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Ezhyk

Цитата:
Вроде всё просто, неужели никто с этим не сталкивался и не в курсе как это сделать?  

язык какой ? все это до ужаса элементарно.

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 01:30 13-10-2004
pavluha



Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Я так понимаю тебе подойдет что то вида php&perl скрипта.
Если чуть подождеш, я с работой разгребусь и скрипт дам(в течении часа).

Всего записей: 366 | Зарегистр. 01-04-2003 | Отправлено: 11:59 13-10-2004
Ezhyk



BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
pavluha, было бы отлично.
 
Cheery
Язык особой роли не играет - php / perl

Всего записей: 362 | Зарегистр. 06-04-2004 | Отправлено: 13:31 13-10-2004
pavluha



Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
wget.html

Код:
 
<HTML>
<BODY>
<FORM action=wget.php method=post>
<TABLE cellSpacing=1 cellPadding=3 width='100%' border=0><TBODY>
<TR><TH vAlign=center height=25 colspan=2>Введите адресс закачиваемого файла</TH></TR>
<TR><TD colspan=2>&nbsp;</TD></TR>
<TR><td width="45%" align="right"><span class="gen">Ссылка:</span></td><TD><INPUT style='WIDTH: 450px' size=25 name=down></TD></TR>
<TD align=middle height=28 colspan=2><INPUT style='cursor:hand;'type=submit value=Загрузить name=submit></TD></TR></TBODY>
</TABLE></FORM>
</BODY>
</HTML>
 

 
wget.php

Код:
 
<?php
passthru(`/usr/bin/wget -c -r -b -t 100 $down`,$p);
echo "Закчка добавлена";
?>
 

 
 
Если что то еще надо добавить указание директории куда сохранять ну и тд.
Это самый простой вариант, работает 100% RedHat, SuSE, ASP
Если больше надо пиши

Всего записей: 366 | Зарегистр. 01-04-2003 | Отправлено: 13:57 13-10-2004
c0r0ner



злобный доктор
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Код:
 
<?
 if($_GET['url']!="")
{
   exec("cd".<your dir here>);
   exec("wget <params> ".$_GET['url']);
}
?>
<form method="POST" action="script.php">
<input type="text" name="url" />
<input type="Submit" />
</form>
 

Это без вывода ошибок, и т.п. Дальше развит тему можно без проблем.


----------
Я - сущий ангел. Только крылья в стирке, а нимб на подзарядке.

Всего записей: 742 | Зарегистр. 09-12-2001 | Отправлено: 13:58 13-10-2004
Ezhyk



BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
pavluha а в какую деррикторию на сервере wget будет сливать файл?
 
Можно ли плз добавить функцию для скачивания нескольких файлов одновременно или по очереди ?

Всего записей: 362 | Зарегистр. 06-04-2004 | Отправлено: 15:07 13-10-2004
pavluha



Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору

Сохраняет в указанную директорию и сколько угодно файлов в текствое окно заносиш и жмеш загрузить. И будет тебе щастье....
wget.html
 

Код:
 
<HTML>
<BODY>
<FORM action=wget.php method=post>
<TABLE cellSpacing=1 cellPadding=3 width='100%' border=0><TBODY>
<TR><TH vAlign=center height=25 colspan=2>Введите адресс закачиваемого файла</TH></TR>
<TR><TD colspan=2>&nbsp;</TD></TR>
<TR><td width="45%" align="right"><span class="gen">Ссылка:</span></td><TD><TEXTAREA style="WIDTH: 300px" name=down rows=6 cols=30></TEXTAREA></TD></TR>
<TR><td width="45%" align="right"><span class="gen">Директория:</span></td><TD><INPUT style='WIDTH: 450px' size=25 name=dirr></TD></TR>
<TD align=middle height=28 colspan=2><INPUT style='cursor:hand;'type=submit value=Загрузить name=submit></TD></TR></TBODY>
</TABLE></FORM>
</BODY>
</HTML>
 

 
wget.php

Код:
 
<?php
$wget_f="wget.lnk";
$fp=fopen($wget_f,"w");
fwrite($fp,$down);
fclose($fp);
passthru(`/usr/bin/wget -c -r -b -t 100 -P $dirr -i $wget_f`,$p);
echo "Закачка добавлена";
?>
 

 
 
Добавлено

Цитата:
pavluha а в какую деррикторию на сервере wget будет сливать файл?  
 
Можно ли плз добавить функцию для скачивания нескольких файлов одновременно или по очереди  ?


Всего записей: 366 | Зарегистр. 01-04-2003 | Отправлено: 16:47 13-10-2004 | Исправлено: pavluha, 17:17 13-10-2004
Ezhyk



BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Не канает чего-то
 
Warning: fopen(wget.lnk): failed to open stream: Permission denied in /var/www/web1/html/wget.php on line 3
 
Warning: fwrite(): supplied argument is not a valid stream resource in /var/www/web1/html/wget.php on line 4
 
Warning: fclose(): supplied argument is not a valid stream resource in /var/www/web1/html/wget.php on line 5
 
Warning: shell_exec(): Cannot execute using backquotes in Safe Mode in /var/www/web1/html/wget.php on line 6
 
Warning: passthru(): Cannot execute a blank command in /var/www/web1/html/wget.php on line 6
Закачка добавлена

Всего записей: 362 | Зарегистр. 06-04-2004 | Отправлено: 22:41 15-10-2004 | Исправлено: Ezhyk, 22:49 15-10-2004
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Ezhyk

Цитата:
Warning: fopen(wget.lnk): failed to open stream: Permission denied in /var/www/web1/html/wget.php on line 3  

ну, а права доступа к дире, где лежит скрипт, какие? очевидно, что у скрипта нет прав на создание там файлов.

Цитата:
Warning: shell_exec(): Cannot execute using backquotes in Safe Mode in /var/www/web1/html/wget.php on line 6  

а вот это уже серьезней.. у тебя safe mode.. полно ограничений.
попробуй так..
chdir("/путь/куда/сохранить");
passthru("/usr/bin/wget -c -r -b -t 100 -P $dirr -i $wget_f   -nd");  


----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 22:56 15-10-2004
Ezhyk



BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Cheery сделал как вы написали, появляется желаемая надпись "Закачка добавлена", но при этом ничего не происходит
Wget не запускается и не начинает качать файл.
Права на папку стоят правильные.

Всего записей: 362 | Зарегистр. 06-04-2004 | Отправлено: 10:42 16-10-2004
Kokoc

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
А может, другим способом? Например, через curl (если, конечно, оный модуль подключен):
 

Код:
 
{
  $down=$_REQUEST['down']; // переданный URL
  $dirr = $_$REQUEST['dirr']; // подразумевается, что нет заключительного слэша
  // проверка на допустимые значения опущена  
  $ch = curl_init();
  curl_setopt ($ch, CURLOPT_URL, $down);
  curl_setopt ($ch, CURLOPT_HEADER, 0);
  curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
  $result = curl_exec ($ch);  
  curl_close ($ch);
   $fp=fopen($dirr.'\'.basename($down),'w');
   fputs($fp,$result);
   fclose($fp);
 

 
(html-форму взять из постинга pavluha)
 
Кстати, может быть ситуация, когда хостер запрещает внешние коннекты - поэтому не работают такие функции как fopen("http://...) и может и wget. Обычно это бывает на халявных хостерах.

Всего записей: 793 | Зарегистр. 06-06-2002 | Отправлено: 15:34 16-10-2004
Ezhyk



BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ничего не понявший ушел в поисковики за инфой.
можете плз объяснить как можно проще ?
 
Добавлено
Kokoc
 
пытался заюзать приведенный вами вариант.
Выдается ошибка:
 
Parse error: parse error, unexpected T_VARIABLE in /var/www/web1/html/wget.php on line 3

Всего записей: 362 | Зарегистр. 06-04-2004 | Отправлено: 13:07 17-10-2004 | Исправлено: Ezhyk, 13:27 17-10-2004
Kokoc

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Точно, ошибочка там.  
Надо вмеcто $dirr = $_$REQUEST['dirr'] написать:

Код:
 
$dirr = $_REQUEST['dirr'];
 

Был лишний '$'.
Ну и тэгами  <? и ?> обрамить. И '{' в самом начале лишняя.
 
[off]Это я проверял у себя с командной строки; работает.{/off]

Всего записей: 793 | Зарегистр. 06-06-2002 | Отправлено: 19:03 17-10-2004
Ezhyk



BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Kokoc
Пасиб, лишнюю я { я убирал и <? & ?> - обрамлял
 
Добавлено
Но тут новая байда:
Parse error: parse error, unexpected T_STRING in /var/www/web1/html/wget/wget.php on line 11
 
Добавлено
Оказывается слэш был не правильный, его я исправил, далее:
 
Warning: fopen(html/kunteynir_feat_BiGALi_vsem_hvatit.mp3): failed to open stream: No such file or directory in /var/www/ web1/html/wget/wget.php on line 11
 
Warning: fputs(): supplied argument is not a valid stream resource in /var/www/web1/html/wget/wget.php on line 12
 
Warning: fclose(): supplied argument is not a valid stream resource in /var/www/web1/html/wget/wget.php on line 13

Всего записей: 362 | Зарегистр. 06-04-2004 | Отправлено: 20:50 17-10-2004
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Ezhyk

Цитата:
failed to open stream: No such file or directory

ну.. нет такой диры или файла..

Цитата:
html/kunteynir_feat_BiGALi_vsem_hvatit.mp3

путь относительно диры со скриптом.. диры автоматом не создаются.


----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 21:14 17-10-2004
Ezhyk



BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Эм...
Вобщем я хотел скачать отсюда тэстовый файл:
http://www.raprecordz.ru/rs/kunteynir_feat_BiGALi_vsem_hvatit.mp3
 
Скрипт у меня находится в каталоге: /var/www/web1/html/wget

Всего записей: 362 | Зарегистр. 06-04-2004 | Отправлено: 21:42 17-10-2004
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Ezhyk

Цитата:
Вобщем я хотел скачать отсюда тэстовый файл:  

для больших файлов неплохо бы еще добавить
http://www.php.net/manual/en/function.set-time-limit.php
 
 
  $down=$_REQUEST['down'];  
  $dir = 'дира_куда_сохранить/';  //должна существовать уже
  $ch = curl_init();  
  curl_setopt ($ch, CURLOPT_URL, $down);  
  curl_setopt ($ch, CURLOPT_HEADER, 0);  
  curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);  
  $result = curl_exec ($ch);  
  curl_close ($ch);  
  $fp=fopen($dir.basename($down),'w');  
  fputs($fp,$result);  
  fclose($fp);  
 
понятно, что тут нет проверки на 404 ошибку.. и так далее.


----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 21:54 17-10-2004
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2 3

Компьютерный форум Ru.Board » Интернет » Web-программирование » Web-Download через wget


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru