2015-02-06 2 views
0

Как я могу отправить изображение с изображением http без записи изображения на диск? Код ниже не работает.Отправить изображение Imagick с HttpRequest (POST)

// function returns an Imagick Object 
    $image = $this->generateLvlImage($avatarUrl, $lvl); 

    // I want to send it with http post 
    $postRequest = new \HttpRequest($uploadUrl, \HttpRequest::METH_POST); 
    $postRequest->addRawPostData('photo='.(string)$image); 
    try { 
     $postRequest->send(); 
     if ($postRequest->getResponseCode() === 200) { 
      $response = $postRequest->getResponseBody(); 
     } else { 
      throw new \Exception('post.failed'); 
     } 
    } catch (\HttpException $e) { 
     throw new \Exception($e->getMessage()); 
    } 

ответ

0

Это действительно сложно сказать точно, не зная точно, кто/что вы пытаетесь отправить. Как правило, вы бы base64_encode изображение, а затем base64_decode на другом конце.

$postRequest->addRawPostData('photo='.base64_encode($image->getImageBlob())); 

Edit: Если вы хотите, чтобы отправить его с помощью данных формы из нескольких частей, то я не мог дать вам ответ без плагиата someoneelses работы, поэтому здесь учебник по нему: http://blog.cloudspokes.com/2013/01/reblog-post-multipartform-data-with.html

+0

Нет, я Посылаем изображение на сервер vk.com. '$ postRequest-> addPostFile ('photo', $ imagePath, 'image/png');' отправляет изображение из файла, имя изображения должно быть «фото». –

+0

Правильно, тогда вы, скорее всего, захотите отправить его в виде многочастных данных формы, что гораздо более важно. –

Смежные вопросы