मैं एक छवि अपलोड करने के लिए निम्नलिखित ट्यूटोरियल का उपयोग कर रहा हूं । मैं जानना चाहता हूं कि क्या डेटा भेजते समय base64_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_encode होना आवश्यक है और क्यों?

पूरा कोड देखने के लिए, आप यहां जा सकते हैं।

1
Horay 20 नवम्बर 2015, 03:34

2 जवाब

सबसे बढ़िया उत्तर

Imgur दस्तावेज़ के अनुसार, वैकल्पिक तरीके हैं।

enter image description here

इसलिए, अपने प्रश्न का उत्तर देने के लिए, नहीं, यह आवश्यक नहीं है जब तक यह अन्य दो समर्थित विकल्पों में से एक है।

1
Jeremy Harris 20 नवम्बर 2015, 00:45

नहीं, यह आवश्यक नहीं है, और मुझे नहीं पता कि यह विशाल चित्रों को पोस्ट करने के लिए एक सामान्य अभ्यास है।

आप cURL विकल्प CURLOPT_INFILE का भी उपयोग कर सकते हैं

BEWARE: नीचे दिए गए उदाहरण, काम नहीं कर सकते हैं, वे केवल सबसे अनपेक्षित उदाहरण हैं।

// 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;
0
swidmann 20 नवम्बर 2015, 00:52