Задача - передать файл другому серверу. Так чтобы на том сервере появился массив $_FILES Делаю так $fp = fopen('1.jpg', "r"); $url = "http://curl_2/"; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_UPLOAD, 1); curl_setopt($ch, CURLOPT_INFILE, $fp); curl_setopt($ch, CURLOPT_INFILESIZE, filesize('1.jpg')); $result = curl_exec($ch); curl_close($ch); На том серваке массив файлз пустой. Что я делаю не так?
Чего-то вообще ничего не происходит. Скрипт где-то затыкается. Беконечно долго курсор - песочные часы. Меняю обратно на $fp отрабатывает моментально.
О!!! Отработал. Warning: curl_setopt(): supplied argument is not a valid File-Handle resource in z:\home\curl_1\www\index.php on line 22
надеюсь идея понятна? chunk_split делать не обязательно. PHP: <? $fp = file_get_contents('ok.gif'); $url = "http://440hz.ru/trash/params/"; $ch = curl_init(); $data = 'name='.urlencode('ok.gif'); $data .= '&file='.chunk_split(base64_encode($fp)); $data .= '&size='.filesize('ok.gif'); //$data = 'file=1'; curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_POST, 1); //curl_setopt($ch, CURLOPT_INFILE,$fp); //curl_setopt($ch, CURLOPT_INFILESIZE, filesize('ok.gif')); curl_setopt($ch, CURLOPT_POSTFIELDS, $data); // Post Variables curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); curl_setopt($ch, CURLOPT_VERBOSE,1); $result = curl_exec($ch); //print_r(curl_getinfo($ch)); print($result); curl_close($ch); ?> PHP: <? # [url=http://440hz.ru/trash/params/]http://440hz.ru/trash/params/[/url] print_r($_POST); ?> Код (Text): * About to connect() to 440hz.ru port 80 * Trying 81.3.178.141... * connected * Connected to 440hz.ru (81.3.178.141) port 80 > POST /trash/params/ HTTP/1.1 Host: 440hz.ru Accept: */* Content-Length: 606 Content-Type: application/x-www-form-urlencoded name=ok.gif&file=R0lGODlhMQAVALMAAOfp7f/qARUrTU2yMoeSpP/qAP/rAG16kf7oAP/rAf7qAPzqAP3sAP/qA7S6 xj1OayH5BAAAAAAALAAAAAAxABUAQAT/EJVlqr04631LMkNoeEFplkoTKEwiCEn8uq/gBJVy7l4R DqPEzmRQBRoFg6KgmxyXukVhJRwGer+gtZRgFJjX3kIaWCSmqZFhixWRrEoPY+54CB6OBOK1QBwE AFNTVm0/hoeIiYqLilpwCksxX0yTkEkMCFddmYRnWW9DBggNawwOAgcLfw4FfKthOp0+blWEIwoJ dgAMAHcMLwAENpNbmrNAoDsJUiNfHwWZLAkNUghjCw2cQ4WM3d7fn7U7KV9IlE0LTxMJuF9rsuFb CsyVI9EtKklT6UbbnrTyvAQQWOeOAwR7BHzRJWGQv2OOQlFaCIiXrxfCCDAgJ+5EoYg7UwykYzDi RQMdL37duYOARYCOJj4mOxHLwIdTBxisUqmg1wMvYOABJDQwRQyECqyRqYYQ4YJYD+N1UiCSwcuJ TCItdcbm34CsxcKKDcsNnNmzPyIAADs= &size=422< HTTP/1.1 200 OK < Date: Wed, 09 Aug 2006 14:09:16 GMT < Server: Apache/1.3.31 (Unix) PHP/5.1.2 < X-Powered-By: PHP/5.1.2 < Transfer-Encoding: chunked < Content-Type: text/html * Connection #0 to host 440hz.ru left intact Array ( [name] => ok.gif [file] => R0lGODlhMQAVALMAAOfp7f/qARUrTU2yMoeSpP/qAP/rAG16kf7oAP/rAf7qAPzqAP3sAP/qA7S6 xj1OayH5BAAAAAAALAAAAAAxABUAQAT/EJVlqr04631LMkNoeEFplkoTKEwiCEn8uq/gBJVy7l4R DqPEzmRQBRoFg6KgmxyXukVhJRwGer gtZRgFJjX3kIaWCSmqZFhixWRrEoPY 54CB6OBOK1QBwE AFNTVm0/hoeIiYqLilpwCksxX0yTkEkMCFddmYRnWW9DBggNawwOAgcLfw4FfKthOp0 blWEIwoJ dgAMAHcMLwAENpNbmrNAoDsJUiNfHwWZLAkNUghjCw2cQ4WM3d7fn7U7KV9IlE0LTxMJuF9rsuFb CsyVI9EtKklT6UbbnrTyvAQQWOeOAwR7BHzRJWGQv2OOQlFaCIiXrxfCCDAgJ 5EoYg7UwykYzDi RQMdL37duYOARYCOJj4mOxHLwIdTBxisUqmg1wMvYOABJDQwRQyECqyRqYYQ4YJYD N1UiCSwcuJ TCItdcbm34CsxcKKDcsNnNmzPyIAADs= [size] => 422 ) * Closing connection #0