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

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

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

Cheery (26-10-2013 21:12): PHP: Закачка файлов с определённого сайта на сервер  Версия для печати • ПодписатьсяДобавить в закладки

   

maxus5578

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Как брать файл из ссылки, а не через форму?
 
вот код  

Код:
 
   $url= $_FILES['torrent']['name'];
    $fn = $_FILES['torrent']['tmp_name'];
    $dict = bdec_file($fn, (1024*1024));
 

Он берет файл из поля "Выбрать файл "
 
а я хочу что бы файл шел через  
$dict = $_GET['url'];
в $_GET['url'] будет идти прямая ссылка на файл
ну и выводится так

Код:
 
header("Content-Disposition: attachment; filename=local_".$url);
    header("Content-Type: application/x-force-download; name=\"local_".$url."; charset=windows-1251\"");
    //print_r($dict);
    print(benc($dict));
    // delete temp uploaded torrent file
    unlink($_FILES['torrent']['tmp_name']);
    exit();
 

Всего записей: 118 | Зарегистр. 12-09-2013 | Отправлено: 23:06 25-10-2013
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
maxus5578
$file = file_get_contents($_GET['url']);
но не всегда сработает, поэтому лучше использовать Curl

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

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 23:34 25-10-2013
maxus5578

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
что то не выходит, даже ошибки не выдает

Код:
 
function linkGet($torrent) {
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $torrent);
    curl_setopt($ch, CURLOPT_HEADER, 0);
    curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.1.2) Gecko/20090729 Firefox/3.5.2 GTB5');
    curl_setopt($ch, CURLOPT_NOBODY, 0);
    curl_setopt($ch, CURLOPT_BINARYTRANSFER, 0);
    curl_setopt($ch, CURLOPT_TIMEOUT, 60);
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 0);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    $result = curl_exec($ch);
    curl_close($ch);
    
    if ($result) {
        return $result;
    } else {
        return false;
    }
}
## Получаем ссылку
$dict = linkGet($_GET['torrent']);
    $url= $_FILES['torrent']['name'];  
    $fn = $_FILES['torrent']['tmp_name'];  
    require_once "benc.php";  
    $dict = bdec_file($fn, (1024*1024));    

Всего записей: 118 | Зарегистр. 12-09-2013 | Отправлено: 00:02 26-10-2013
Cheery



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

Цитата:
что то не выходит, даже ошибки не выдает  

ну, сделали запрос.. а содержимое ответа кто забирать будет?
 

Цитата:
$result = curl_exec($ch);  

там разве ответ возвращается?
 
ps: ок, да, ответ

Цитата:
However, if the CURLOPT_RETURNTRANSFER option is set, it will return the result on success, FALSE on failure.

 
ну так сделайте var_dump($result); и посмотрите, там ошибка, наверняка, какая то

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

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 00:03 26-10-2013 | Исправлено: Cheery, 00:05 26-10-2013
maxus5578

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Cheery
я взял готовый вид, обычно везде где ставил работало.
Исправьте пожалуйста =)

Всего записей: 118 | Зарегистр. 12-09-2013 | Отправлено: 00:06 26-10-2013
Cheery



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

Цитата:
я взял готовый вид, обычно везде где ставил работало.  

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

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

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 00:08 26-10-2013
maxus5578

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Cheery
ошибок так и не выдало.
Удаленный сервер выдает файлы,на данный момент я получаю файл с того же сервера и изменяю его ориг.название, значит сервер выдает все норм.А тут я не могу понять в чем проблема.

Всего записей: 118 | Зарегистр. 12-09-2013 | Отправлено: 00:10 26-10-2013
Cheery



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

Цитата:
ошибок так и не выдало.  

что пишет

Цитата:
var_dump($result);

?

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

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 00:53 26-10-2013
maxus5578

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ни чего не выдает, пустота
 
Добавлено:
что делать? я запарился с этим кодом,ошибок не выдает.  
Хотел узнать, если можно сделать так.
передаем файл ?get=ссылка к файлу.
Скрипт принимает сохраняет его в папку.
Потом открывает делает свою работу.
Закрывает, выдает нам обработанный файл и после удаляет (unlink)

Всего записей: 118 | Зарегистр. 12-09-2013 | Отправлено: 12:25 26-10-2013
Cheery



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

Цитата:
ни чего не выдает, пустота

значит у вас тот код не выполняется.
var_dump всегда хоть что то выдает.  
даже если переменная пустая или булеан типа
 
более того, тема уже есть. поэтому закрою данную  
PHP: Закачка файлов с определённого сайта на сервер

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

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 20:54 26-10-2013 | Исправлено: Cheery, 21:11 26-10-2013
   

Компьютерный форум Ru.Board » Интернет » Web-программирование » PHP:Брать файл из ссылки
Cheery (26-10-2013 21:12): PHP: Закачка файлов с определённого сайта на сервер


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

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

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru