@maksim_vasil4enk0

Как правильно загружать фото api php?

Все привет. Помогите!
Загрузка в 3 шага
1й все ок урл получаю, а 2й
Step 2. Error code: 505. Error msg: one.image.server.upload.ContentUploadServerException: NO_IMAGE

Как не крутил беда таже

Курл
function getUrl($url, $type = "GET", $params = array(), $timeout = 30, $image = false, $decode = true)
{
    if ($ch = curl_init())
    {
        curl_setopt($ch, CURLOPT_URL, $url);
        curl_setopt($ch, CURLOPT_HEADER, false);

        if ($type == "POST")
        {
            curl_setopt($ch, CURLOPT_POST, 1);

            // Картинка
            if ($image) {
                curl_setopt($ch, CURLOPT_POSTFIELDS, $params);
            }
            // Обычный запрос       
            elseif($decode) {
                curl_setopt($ch, CURLOPT_POSTFIELDS, urldecode(http_build_query($params)));
            }
            // Текст
            else {
                curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($params));
            }
        }

		curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
        curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
        curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.2.12) Gecko/20101026 Firefox/3.6.12');
        
		curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); 

        $data = curl_exec($ch);

        curl_close($ch);

        // Еще разок, если API завис
        if (isset($data['error_code']) && $data['error_code'] == 5000) {
            $data = getUrl($url, $type, $params, $timeout, $image, $decode);
        }

        return $data;

    }
    else {
        return "{}";
    }
}

так отправляю
// $p_imf = '/home/4655/bla.site.ua/ok/img/pic.jpg';
$params = array(
'pic1' => '@'.$p_imf,
);
// Отправляем картинку на сервер, подписывать не нужно
$step2 = json_decode( getUrl( $step1['upload_url'], "POST", $params, 30, true), true);
  • Вопрос задан
  • 1418 просмотров
Пригласить эксперта
Ответы на вопрос 2
rus89
@rus89
Team lead and developer
Вот похожая проблема у человека ru.stackoverflow.com/questions/491379/%D0%97%D0%B0...

А вообще рекомендую использовать Guzzle Http Client, там загрузка на сервер делается так.
Ответ написан
Комментировать
@RomanTrakhtenberg
Пока не волшебник, только учусь.
Строка закомментирована
// $p_imf = '/home/4655/bla.site.ua/ok/img/pic.jpg';
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы