Не могу понять в чём трабла. Пытаюсь отправить файл с помощью курла, но ничего не получается. Прохожу авторизацию на сервере, получаю скрытые параметры и пытаюсь отправить файл 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($ch, CURLOPT_USERAGENT, $ua); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $post); curl_setopt($ch, CURLOPT_REFERER, $refer); curl_setopt($ch, CURLOPT_COOKIEJAR, "./cook"); curl_setopt($ch, CURLOPT_COOKIEFILE, "./cook"); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); $result = curl_exec($ch); return $result; }
C отправкой файла столкнулся первый раз, поэтому переделывал примеры... // - комментарий не удалил, но он же не мешает. "@".$upload - это именно в примере было. Якобы так помечается файл для отправки
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')