Php 是否需要进行base64_编码

Php 是否需要进行base64_编码,php,base64,imgur,Php,Base64,Imgur,我正在使用将图像上载到imgur。我想知道在发送数据时是否需要使用base64\u encode 下面是一个小代码片段: $img=$_FILES['img']; $filename = $img['tmp_name']; $data = fread($handle, filesize($filename)); $pvars = array('image' => base64_encode($data)); // Here's the base64_encode curl_setopt($

我正在使用将图像上载到imgur。我想知道在发送数据时是否需要使用
base64\u encode

下面是一个小代码片段:

$img=$_FILES['img'];
$filename = $img['tmp_name'];
$data = fread($handle, filesize($filename));
$pvars = array('image' => base64_encode($data)); // Here's the base64_encode
curl_setopt($curl, CURLOPT_POSTFIELDS, $pvars);
是否需要使用
base64\u编码
以及为什么

要查看完整的代码,您可以转到。

根据文档,有其他方法


因此,为了回答您的问题,不,只要它是另外两个受支持的选项之一,就不需要它。

不,不需要它,我不知道这是否是发布大型图像的常见做法

您也可以使用cURL选项
CURLOPT\u infle

注意:以下示例可能不起作用,它们只是未测试的示例

// This is the entire file that was uploaded to a temp location.
$localFile = $_FILES[$fileKey]['tmp_name']; 

$fp = fopen($localFile, 'r');

// Connecting to website.
$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, $target_url );
curl_setopt($ch, CURLOPT_UPLOAD, 1);
curl_setopt($ch, CURLOPT_INFILE, $fp);
curl_setopt($ch, CURLOPT_BUFFERSIZE, 128);
curl_setopt($ch, CURLOPT_INFILESIZE, filesize($localFile));
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
$result=curl_exec ($ch);
curl_close ($ch);
echo $result;
或者只是一篇简单的帖子

$post = array('extra_info' => '123456','file_contents'=>'@'.$_FILES['upload']['tmp_name']);

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$target_url);
curl_setopt($ch, CURLOPT_POST,1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
$result=curl_exec ($ch);
curl_close ($ch);
echo $result;

另一个重要注意事项的可能重复项是base64编码。某些内容会将大小增加4/3,因此如果可能,应首选二进制,特别是如果base64编码字符串上的10MB限制。建议使用哪一个?哦。。。谢谢所以我可以用
$data
替换
$pvars
?我不认为cURL会直接这样做,看看这个:。出于好奇,base64的反对意见是什么?文件太大了吗?@cillosis有两件事。第一:我将传递一个图像或url。我认为我不能对url执行base64。第二:用户可以上传更大的文件。这引出了另一个问题。如果我使用base64,那么我如何知道要限制用户的容量?