Php 将发布的图像转换为Base64

Php 将发布的图像转换为Base64,php,forms,file,post,base64,Php,Forms,File,Post,Base64,我有一个网站,我正在工作,它使用imgur api上传用户的个人资料图片,但它需要是base64才能使用我的功能: function imgur($image) { $client_id = "client_id_some_numbers_and_stuff"; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, 'https://api.imgur.com/3/image.json'); curl_setopt($c

我有一个网站,我正在工作,它使用imgur api上传用户的个人资料图片,但它需要是base64才能使用我的功能:

function imgur($image) {
    $client_id = "client_id_some_numbers_and_stuff";
    $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 ' . $client_id));
    curl_setopt($ch, CURLOPT_POSTFIELDS, array('image' => base64_encode($image)));
    $reply = curl_exec($ch);
    curl_close($ch);
    $reply = json_decode($reply);
    $link = $reply->data->link;
    return $link;
}
我从表单输入中获取图像(
)。当我从
$\u POST[“pp”]
获取数据时,它被设置为文件名的字符串,没有任何有用的内容

如何获取图像文件并将其传递到
imgur()
函数中,或者将其转换为base64,然后将其传递到
imgur()
函数中,然后从函数中删除base64编码

谢谢:)


编辑:此帖子与标记为重复的帖子不同,因为我想知道如何将表单数据发送到其他地方,而不是将其上载到我的站点。

上载文件的信息包含$\u文件数组

您需要在服务器中获取上载文件路径,并将其转换为base64

$image = $_FILES["pp"]["tmp_name"];
$type = pathinfo($image, PATHINFO_EXTENSION);
$data = file_get_contents($image);
$base64 = 'data:image/' . $type . ';base64,' . base64_encode($data);
imgur($base64);

上载文件的信息包含$\u文件数组

您需要在服务器中获取上载文件路径,并将其转换为base64

$image = $_FILES["pp"]["tmp_name"];
$type = pathinfo($image, PATHINFO_EXTENSION);
$data = file_get_contents($image);
$base64 = 'data:image/' . $type . ';base64,' . base64_encode($data);
imgur($base64);

我会尽快尝试,但我尝试了一个$u文件的var\u转储,结果是一个空文件array@RedXTech你的html表单有正确的加密类型吗?是否为enctype='multipart/form data'?你使用ajax吗?发布表单的代码给我几分钟,我会在访问它后尽快将其发布。必须稍微更改一些内容-只需在
$data
变量上调用
imgur()
,效果很好。谢谢(我最初忘了更改enctype,所以这是个问题)我会尽快尝试,但我尝试了$u文件的var_转储,结果是空的array@RedXTech你的html表单有正确的加密类型吗?是否为enctype='multipart/form data'?你使用ajax吗?发布表单的代码给我几分钟,我会在访问它后尽快将其发布。必须稍微更改一些内容-只需在
$data
变量上调用
imgur()
,效果很好。谢谢(我最初忘了更改enctype,所以这是一个问题)可能重复@Lashane我没有尝试上载它,我正在尝试从post表单获取base64数据。可能重复@Lashane我没有尝试上载它,我正在尝试从post表单获取base64数据。