Как реализовать imgur api (хост изображений) на сайте? - PullRequest
4 голосов
/ 01 декабря 2011

Я наткнулся на http://api.imgur.com и подумал, что это будет полезным инструментом для использования на моем сайте.Затем я заметил, что StackOwerflow использует это тоже, так что это должно быть хорошо))) Хотя я изо всех сил пытаюсь реализовать это.Я взглянул на http://api.imgur.com/examples раздел PHP, но он мне не сильно помог.

Что меня интересует, так это включение imgur api на мой сайт, чтобы пользователи могли загружать свои изображения.Мне нужно было бы сохранить img url / path, чтобы я мог отобразить его на веб-сайте.

например, иметь форму, которая позволит пользователям загружать фотографии, а затем сохранять URL / путь к загруженному изображению в базе данных (VARCHAR).

У кого-нибудь был успех с этой системой, и он мог бы помочь мне понять, как реализовать ее, как это использует StackOwerflow (хранить только URL изображения в базе данных, а не публиковать).

Код, который я пробовал:

 <form enctype="multipart/form-data" method="post" action="upload_img.php">
    Choose your file here:
    <input name="uploaded_file" type="file"/>
    <input type="submit" value="Upload It"/>
    </form>

upload_img.php

<?
    $filename = "image.jpg";
    $handle = fopen($filename, "r");
    $data = fread($handle, filesize($filename));

    // $data is file data
    $pvars   = array('image' => base64_encode($data), 'key' => IMGUR_API_KEY);
    $timeout = 30;
    $curl    = curl_init();

    curl_setopt($curl, CURLOPT_URL, 'http://api.imgur.com/2/upload.xml');
    curl_setopt($curl, CURLOPT_TIMEOUT, $timeout);
    curl_setopt($curl, CURLOPT_POST, 1);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($curl, CURLOPT_POSTFIELDS, $pvars);

    $xml = curl_exec($curl);

    curl_close ($curl);
?>

1 Ответ

4 голосов
/ 01 декабря 2011

Я вижу, что вы скопировали и вставили пример с сайта API imgur, в котором приведен пример имени файла, содержащегося в $filename.Вам нужно указать эту переменную в файле, который был загружен PHP.

Изменить $filename часть вашего скрипта:

$filename = $_FILES['uploaded_file']['tmp_name'];

Источник: Загрузка файла метода POST

...