загрузка imgur cURL в json_decode php форма загрузки - PullRequest
0 голосов
/ 24 марта 2020



Я пытаюсь использовать imgur в качестве бэкэнда для загрузки - я думаю, это защитит мой веб-сайт, если есть изображение для загрузки (верно?) так

я пошел по этому пути:

<?php

$client_id = 'xxxxx';

    $file = file_get_contents($_FILES["imgupload"]["tmp_name"]);

    $url = 'https://api.imgur.com/3/image.json';
    $headers = array("Authorization: Client-ID $client_id");
    $pvars = array('image' => base64_encode($file));

    $curl = curl_init();

    curl_setopt_array($curl, array(
       CURLOPT_URL=> $url,
       CURLOPT_TIMEOUT => 30,
       CURLOPT_POST => 1,
       CURLOPT_RETURNTRANSFER => 1,
       CURLOPT_HTTPHEADER => $headers,
       CURLOPT_POSTFIELDS => $pvars
    ));

    if ($error = curl_error($curl)) {
        die('cURL error:'.$error);
    }

    $json_returned = curl_exec($curl); // blank response
    echo "Result: " . $json_returned ;

    curl_close ($curl); 
?>

HTML форма

  <form action="upload" method="post" enctype="multipart/form-data">
    <input type="file" name="imgupload" /><br>
    <input type="submit" value="Upload to Imgur" />
</form>

когда я нажимаю на кнопку отправить, результат в порядке, как я думаю ^^

Result: {"data":{"id":"TvFtE29","title":null,"description":null,"datetime":1585015712,"type":"image\/png","animated":false,"width":900,"height":940,"size":48902,"views":0,"bandwidth":0,"vote":null,"favorite":false,"nsfw":null,"section":null,"account_url":null,"account_id":0,"is_ad":false,"in_most_viral":false,"has_sound":false,"tags":[],"ad_type":0,"ad_url":"","edited":"0","in_gallery":false,"deletehash":"Z9xFH8mrSH8lRDB","name":"","link":"https:\/\/i.imgur.com\/TvFtE29.png"},"success":true,"status":200}

но моя проблема, я хочу собрать https://i.imgur.com/TvFtE29.png в
Speci c переменную типа $ uploaded = 'https://i.imgur.com/TvFtE29.png'; в добавлен в мою базу данных -> пользователь pi c

я пошел с json_decode , но он не завершен со мной правильным образом,


, если кто-то может помогите с этим вопросом ? спасибо.

1 Ответ

0 голосов
/ 24 марта 2020

json_decode работал нормально здесь:

$json_returned = json_decode($json_returned, true);
$uploaded = $json_returned['data']['link'];
...