Не могу отправить файл POST

Discussion in 'PHP' started by Komyak, 14 Feb 2010.

  1. Komyak

    Komyak Banned

    Joined:
    14 Jan 2009
    Messages:
    197
    Likes Received:
    17
    Reputations:
    1
    Не могу понять в чём трабла. Пытаюсь отправить файл с помощью курла, но ничего не получается.
    Прохожу авторизацию на сервере, получаю скрытые параметры и пытаюсь отправить файл book.htm :
    PHP:
    //name: test.php
    ......................................//Здесь авторизация 
     
    $upload 'book.htm'
    $data = array("token" => $token[1],
            
    "name" => 'bookFile',//
            
    'upload' => "@".$upload,
            
    "visibility" => "openned",
            
    "show" => "1",
            
    "go_save"  => "Послать"); 
     
    $result=post("http://xxx.net/add_up.php",$data,$referer,$ua);
    echo 
    $result;
    Оригинальная форма отправки выглядит так:
    HTML:
    <form enctype="multipart/form-data" action="" method="post">
            <input type="hidden" name="token" value="XXXXXXXXX" /> 
            <input type="file" name="bookFile" size="44" class="text" />
            <input name="visibility" value="openned"/>
            <input name="show" value="1"/>
            <input type="submit" name="go_save" value="Послать" />
    </form>
    
    Но ни Х не получается... Подскажите в чём может быть проблема?
    Файл book.htm находится рядом со скриптом отправщиком.

    Моя post функция:
    PHP:
    function post($url,$post,$refer,$ua)  
        {  
           
    $ch curl_init($url);  
           
    curl_setopt($chCURLOPT_USERAGENT$ua);  
           
    curl_setopt($chCURLOPT_POST1);  
           
    curl_setopt($chCURLOPT_POSTFIELDS$post);  
           
    curl_setopt($chCURLOPT_REFERER$refer);  
           
    curl_setopt($chCURLOPT_COOKIEJAR"./cook");  
           
    curl_setopt($chCURLOPT_COOKIEFILE"./cook");  
           
    curl_setopt($chCURLOPT_FOLLOWLOCATION1);  
           
    curl_setopt($chCURLOPT_RETURNTRANSFER1);  
           
    $result  curl_exec($ch);  
           return 
    $result;       
      
        } 
     
     
    #1 Komyak, 14 Feb 2010
    Last edited: 14 Feb 2010
  2. Komyak

    Komyak Banned

    Joined:
    14 Jan 2009
    Messages:
    197
    Likes Received:
    17
    Reputations:
    1
    C отправкой файла столкнулся первый раз, поэтому переделывал примеры...
    // - комментарий не удалил, но он же не мешает.
    "@".$upload - это именно в примере было. Якобы так помечается файл для отправки
     
  3. Chaak

    Chaak Elder - Старейшина

    Joined:
    1 Jun 2008
    Messages:
    1,059
    Likes Received:
    1,067
    Reputations:
    80
    PHP:
    $postdata = array('name поля upload' => "@".dirname(__file__).$filename);

    $ch curl_init();
    curl_setopt($ch,CURLOPT_URL,'страница action');
    curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
    curl_setopt($ch,CURLOPT_FOLLOWLOCATION,0);
    curl_setopt($ch,CURLOPT_POST,1);
    curl_setopt($ch,CURLOPT_POSTFIELDS$postdata);
    curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,300);
    $res curl_exec($ch);
    curl_close($ch);
    Иногда требуется указать полный путь к отправляемому файлу. (dirname(__file__).'file.exe')
     
    1 person likes this.