Загрузите файл в imgur с помощью php и получите ссылку

У меня есть HTML-форма с кнопкой загрузки файла. Я хочу, чтобы пользователь мог выбрать изображение и отправить форму, затем сервер должен загрузить файл в imgur с помощью PHP и получить прямую ссылку на это изображение (это означает, что URL-адрес должен заканчиваться на .jpg или .png и т. д. .)

Я был бы очень признателен, если бы кто-нибудь показал мне, как загрузить изображение в imgur с помощью PHP, а затем получить прямую ссылку на это изображение, чтобы я мог сохранить ссылку на базу данных MySQL. Если нет возможности получить прямую ссылку на изображение, то обычная ссылка imgur также будет работать. Что-то вроде этого также будет работать:

https://imgur.com/gallery/KlzhGuE

Но первый приоритет примерно такой:

https://i.imgur.com/KlzhGuE.jpg

Редактировать: Итак, мне удалось загрузить изображение и получить ответ json с помощью API. После того, как я декодирую возвращенный json и var_dump его, я получаю это:

object(stdClass)#1 (3) {
  ["data"]=>
  object(stdClass)#2 (21) {
    ["id"]=>
    string(7) "yPfV2Tq"
    ["title"]=>
    NULL
    ["description"]=>
    NULL
    ["datetime"]=>
    int(1456813618)
    ["type"]=>
    string(9) "image/png"
    ["animated"]=>
    bool(false)
    ["width"]=>
    int(123)
    ["height"]=>
    int(23)
    ["size"]=>
    int(3149)
    ["views"]=>
    int(0)
    ["bandwidth"]=>
    int(0)
    ["vote"]=>
    NULL
    ["favorite"]=>
    bool(false)
    ["nsfw"]=>
    NULL
    ["section"]=>
    NULL
    ["account_url"]=>
    NULL
    ["account_id"]=>
    int(0)
    ["comment_preview"]=>
    NULL
    ["deletehash"]=>
    string(15) "bNjtF9OSdG1QAM7"
    ["name"]=>
    string(0) ""
    ["link"]=>
    string(30) "http://i.imgur.com/yPfV2Tq.png"
  }
  ["success"]=>
  bool(true)
  ["status"]=>
  int(200)
}

Теперь, как извлечь часть, говорящую https://i.imgur.com/yPfV2Tq.png ?


person Adib    schedule 01.03.2016    source источник
comment
Объясняет ли это, что вы ищете: subinsb.com/uploading- изображения-используя-imgur-api-in-php?   -  person stratedge    schedule 01.03.2016
comment
Я просматривал это раньше, но многое изменилось с тех пор, как это было опубликовано, поэтому не смог заставить его работать. Imgur также многое изменил с тех пор, я имею в виду их API.   -  person Adib    schedule 01.03.2016
comment
Понятно. Можете ли вы использовать композитор для извлечения библиотек? Похоже, есть по крайней мере 2 библиотеки для взаимодействия с Imgur API, которые облегчат вашу жизнь, если вы сможете. github.com/Adyg/php-imgur-api-client выглядит многообещающе и включает документацию по загрузке изображения с помощью библиотеки (github.com/Adyg/php-imgur-api-client/blob/master/doc/Image.md).   -  person stratedge    schedule 01.03.2016
comment
Я думаю, что тот, который вы разместили, будет работать, только если я смогу пройти аутентификацию, используя их новую систему аутентификации. Не могли бы вы помочь мне с этим, если у вас есть идеи?   -  person Adib    schedule 01.03.2016
comment
спасибо, это может решить все проблемы   -  person Adib    schedule 01.03.2016
comment
Да, на стороне аутентификации вам нужно будет зарегистрировать свое приложение в Imgur, если вы еще не получили идентификатор клиента и секрет (api.imgur.com/#registerapp), и тогда библиотека сделает за вас большую часть остального.   -  person stratedge    schedule 01.03.2016
comment
Не могли бы вы взглянуть на часть редактирования выше? @xjstratedgebx   -  person Adib    schedule 01.03.2016
comment
URL-адрес будет в формате $json->data->link   -  person drew010    schedule 01.03.2016
comment
большое спасибо, чувак, наконец-то все решилось   -  person Adib    schedule 01.03.2016


Ответы (1)


Итак, я нашел способ, как это сделать. Использовал справку отсюда: using-php">использование imgur api v3 для анонимной загрузки изображений с помощью php

В своем ответе использовал код, предоставленный h0tw1r3. И использовал справку от drew010 для извлечения ссылки с помощью

$reply->data->link;

в дополнение к коду, предоставленному h0tw1r3. В любом случае спасибо xjstratedgebx за попытку.

person Adib    schedule 01.03.2016