curl -> загрузка файла

Тема в разделе "PHP", создана пользователем kip, 5 ноя 2009.

Статус темы:
Закрыта.
Модераторы: latteo
  1. kip

    kip Постоялец

    Регистр.:
    7 янв 2007
    Сообщения:
    145
    Симпатии:
    15
    Дано такая форма:
    HTML:
    <form action="script.php" method="POST">
    <INPUT TYPE="file" NAME="file" SIZE=20><BR>
    Как курлом такие данные передать? :confused:
     
  2. KillDead

    KillDead

    Регистр.:
    11 авг 2006
    Сообщения:
    890
    Симпатии:
    562
    PHP:
     $post = array('file'=>"@C:\file.txt");   
    $ch curl_init();
    curl_setopt($chCURLOPT_URL'http://...script.php');      
    curl_setopt($chCURLOPT_POST,1);   
    curl_setopt($chCURLOPT_POSTFIELDS$post);   
    $result curl_exec ($ch);
     
    System777 нравится это.
  3. Emporio

    Emporio Постоялец

    Регистр.:
    17 апр 2009
    Сообщения:
    63
    Симпатии:
    4
    Можно по ftp:

    PHP:
    // FTP this script to a server  
    $fp fopen(__FILE__"r");  
    $url "ftp://username:password@mydomain.com:21/path/to/newfile.php";  
    $ch curl_init();      
    curl_setopt($chCURLOPT_URL$url);   
    curl_setopt($chCURLOPT_RETURNTRANSFER1);   
    curl_setopt($chCURLOPT_UPLOAD1);   
    curl_setopt($chCURLOPT_INFILE$fp);   
    curl_setopt($chCURLOPT_FTPASCII1);   
    curl_setopt($chCURLOPT_INFILESIZEfilesize(__FILE__));   
    $result curl_exec($ch);   
    curl_close($ch);  
     
  4. KillDead

    KillDead

    Регистр.:
    11 авг 2006
    Сообщения:
    890
    Симпатии:
    562
    :D При чём тут фтп? Человеку нужно сэмулировать отправку формы с файлом.
     
  5. System777

    System777 Создатель

    Регистр.:
    20 апр 2008
    Сообщения:
    30
    Симпатии:
    13
    Хм., весьма интересный код, хотя с курлом давно работал - но чё-то с таким ещё не сталкивался ;)

    KillDead, не подскажете - а такой код можно использовать загрузки в формы файлообменников (типа depositfiles и т.п.) - там по сути такая же форма, только ещё надо придумать как избежать обрыва при загрузке больших файлов (max_execution_time?).

    И самое главное, как-то авторизироваться (чтобы файлы считались своими) ;)
     
  6. kip

    kip Постоялец

    Регистр.:
    7 янв 2007
    Сообщения:
    145
    Симпатии:
    15
    Ммм... т.е. через собаку просто надо было =)
    Спасибо
     
  7. murich

    murich Постоялец

    Регистр.:
    10 фев 2007
    Сообщения:
    143
    Симпатии:
    19
    Запускай на своем сервере.
     
  8. KillDead

    KillDead

    Регистр.:
    11 авг 2006
    Сообщения:
    890
    Симпатии:
    562
    Ыыы, жесть совет:D
    Принципиально- никакой разницы нет, токо дело в парсинге значений, которые нужно передать:
    1- либо авторизироваться, либо сразу перейти ко п.2 отослать кук авторизации (который можно посмотреть в браузере)
    2- отослать файл через форму, в параметрах curl указать cookies полученный при авторизации.
     
  9. murich

    murich Постоялец

    Регистр.:
    10 фев 2007
    Сообщения:
    143
    Симпатии:
    19
    Ты явно не понял в чем проблема.
    Проблема в том что на шаред хостинге лимит работы php скрипта 30 секунд.
    На своем сервере такого нет, вернее ты можешь сам настроить лимит.
    И стоит он не так дорого. (firstvds.ru, fastvds.ru)
     
  10. mlol

    mlol Создатель

    Регистр.:
    9 фев 2009
    Сообщения:
    21
    Симпатии:
    1
    Подскажите как в таком случе будет выглядить запрос
    HTML:
    <form enctype="multipart/form-data" action="/photo1.php?id=99" method="post">
    <input type="hidden" name="MAX_FILE_SIZE" value="3145728">
    <input name="userfile" type="file">
    <input type="submit" value="Загрузить">
     
Статус темы:
Закрыта.