用php上传图片到imgur

时间:2013-11-22 17:03:59

标签: php api curl imgur

我使用php上传图片imgur这是我正在使用的代码:

    $id = 'clientId';
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, 'https://api.imgur.com/3/image.json');
    curl_setopt($ch, CURLOPT_POST, TRUE);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
    curl_setopt($ch, CURLOPT_HTTPHEADER, array( 'Authorization: Client-ID ' . $id));
    curl_setopt($ch, CURLOPT_POSTFIELDS, array( 'image' => base64_encode($image)));
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
    $response = curl_exec($ch);
    $response = json_decode($response);
    curl_close ($ch);

代码正在运行,但我希望将图片上传到我的帐户相册,如果有人知道该怎么做的话,我也想知道为什么我必须设置curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);才能使代码工作,我确实访问了manual,但是如果有人能给我一些关于如何以及为什么我会非常感激的背景,谢谢大家,祝你们度过愉快的一天。

2 个答案:

答案 0 :(得分:1)

您可以根据请求发送这些参数:

image   required    A binary file, base64 data, or a URL for an image
album   optional    The id of the album you want to add the image to. For anonymous albums, {album} should be the deletehash that is returned at creation.
type    optional    The type of the file that's being sent; file, base64 or URL
name    optional    The name of the file, this is automatically detected if uploading a file with a POST and multipart / form-data
title   optional    The title of the image.
description optional    The description of the image.

那么,这个怎么样:

curl_setopt($ch, CURLOPT_POSTFIELDS, array('image' => base64_encode($image), 'album' => 1234));

答案 1 :(得分:1)

通过将CURLOPT_SSL_VERIFYPEER设置为false,它将不会验证ssl证书上的域。通常证书设置为xyz.com域而不是所有xyz的子域(更昂贵,因为这些证书不太常见)。

由于它在将其设置为false时有效,这意味着不会为特定域路径创建其ssl证书。

通过设置为true,它将尝试验证证书,并在该特定域路径不存在证书时停止连接。希望这有帮助。