Автор оригинала: valeraorg
Да, я смотрел как у вас, но это сильно сложно. Для либы годиться для моего прикладного случая - это слишком. А курл PHP разве не умеет работать c файловым дескриптором? Где-то я такое видел.
Умеет, но в этот файловый дескриптор придётся сначала положить тело запроса в формате multipart/form-data.
Кстати хочу все таки помочь найди ошибку, вот попробовал еще простой запрос сделать теперь уже изолированно и без наследников:
$client = new HTTP_Request2('http://rs68l3.rapidshare.com/cgi-bin/upload.cgi?rsuploadid=327611371798485496','POST');
$client->addUpload('filecontent', DOCROOT.'uploads/'.$task->files->name);
var_dump($client->send()->getBody());
У рапиды взрыв мозгов - говорит No file choosen
Так, я тут сам поигрался с рапидшарой, изучив предварительно
описание API и предлагающийся
пример скрипта на Перле, действительно не работает. Такое впечатление, что они не могут разобрать multipart/form-data, который я генерирую. При этом если заменить в HTTP_Request2_MultipartBody boundary на предлагаемый в их скрипте, всё ВНЕЗАПНО начинает работать!
PHP:
require_once 'HTTP/Request2.php';
$request = new HTTP_Request2('http://rapidshare.com/cgi-bin/rsapi.cgi?sub=nextuploadserver_v1');
$server = $request->send()->getBody();
if (!preg_match('/^(\\d+)$/', $server)) {
echo "Неправильный сервер: {$server}";
}
$upload = new HTTP_Request2("http://rs{$server}l3.rapidshare.com/cgi-bin/upload.cgi", 'POST');
$upload->addUpload('filecontent', $filename);
$upload->addPostParameter('rsapi_v1', '1');
$response = $upload->send();
echo $response->getBody();
Вощемта надо дальше разбираться, кто виноват --- я, используя неправильный boundary, или рапидшара, не могущая его разобрать.
-~{}~ 09.08.09 15:51:
До кучи:
АНАЛогичная проблема, по ходу косяк рапидшары?