Попытка сделать скриптом file upload через curl...

WebPHPDev

Новичок
Попытка сделать скриптом file upload через curl...

Вот такой код:
PHP:
$url = 'http://localhost/upload/index.php';
$file = 'foto.gif';

$headers = array();
$headers[] = "Host: localhost";
$headers[] = "Accept: text/html";
$headers[] = "Keep-Alive: 300";
$headers[] = "Connection: keep-alive";
$headers[] = "Content-Type: multipart/form-data; boundary=----foto";
$headers[] = "Content-Length: " . strlen( file_get_contents( $file ) );
$headers[] = "----foto";
$headers[] = "Content-Disposition: form-data; name=\"myfile\"\n";
$headers[] = chunk_split( base64_encode( file_get_contents( $file ) ) );
$headers[] = "----foto";

$ch = curl_init(); 
curl_setopt( $ch, CURLOPT_URL, $url );
curl_setopt( $ch, CURLOPT_RETURNTRANSFER, TRUE );
curl_setopt( $ch, CURLOPT_TIMEOUT, 40 );
curl_setopt( $ch, CURLOPT_POST, TRUE );
curl_setopt( $ch, CURLOPT_HTTPHEADER, $headers );
$result = curl_exec($ch);
curl_close($ch);

echo $result;
При попытке отправки из одного скрипта (листинг выше) в другой (http://localhost/upload/index.php) - процесс выполнения виснет на 40 секунд и ничего не выводит (пустой экран :) ).
Где я ошибся?
Хочу foto.gif зааплодить в принимающий скрипт. (принимает корректно и успешно, с отправкой что-то).

Спасибо.
 

dimagolov

Новичок
WebPHPDev, а что по-твоему значит строка
curl_setopt( $ch, CURLOPT_TIMEOUT, 40 );
?
CURL сам умеет загружать файлы, надо только дать ему CURLOPT_POST = true и массив CURLOPT_POSTFIELDS с файлами, а не страдать отправкой заголовков руками. Вообще в мане все есть.
 

WebPHPDev

Новичок
Спасибо большое! Сработало!!

Кому коды пригодяться, вот:
Код:
$postFileArr = array();
$postFileArr['myfile'] = '@foto.gif';

$ch = curl_init(); 
curl_setopt( $ch, CURLOPT_URL, $url );
curl_setopt( $ch, CURLOPT_RETURNTRANSFER, TRUE );
curl_setopt( $ch, CURLOPT_TIMEOUT, 20 );
curl_setopt( $ch, CURLOPT_POST, TRUE );
curl_setopt( $ch, CURLOPT_POSTFIELDS, $postFileArr );
$result = curl_exec($ch);
curl_close($ch);

echo $result;
 

yantar

Новичок
2 WebPHPDev
Код:
$postFileArr['myfile'] = '@foto.gif';
Работает локально, только если абсолютный путь, если относительный дает ошибку
failed creating formpost data upload curl ifle
 
Сверху