আপনি কি দয়া করে আমাকে গাইড করতে পারেন আমি কীভাবে কোনও চিত্রটি একটি ইউআরএল থেকে বেস 64 কে এনকোডিংয়ে রূপান্তর করতে পারি?
আপনি কি দয়া করে আমাকে গাইড করতে পারেন আমি কীভাবে কোনও চিত্রটি একটি ইউআরএল থেকে বেস 64 কে এনকোডিংয়ে রূপান্তর করতে পারি?
উত্তর:
আমি মনে করি এটি হওয়া উচিত:
$path = 'myfolder/myimage.png';
$type = pathinfo($path, PATHINFO_EXTENSION);
$data = file_get_contents($path);
$base64 = 'data:image/' . $type . ';base64,' . base64_encode($data);
সহজ:
$imagedata = file_get_contents("/path/to/image.jpg");
// alternatively specify an URL, if PHP settings allow
$base64 = base64_encode($imagedata);
মনে রাখবেন যে এটি ডেটাটি 33% বাড়িয়ে তুলবে, এবং আপনার ফাইলগুলির সমস্যা হবে যার আকার আপনার ছাড়িয়ে যাবে memory_limit
।
বেস 6464 এনকোড ফর্ম্যাটে চিত্রটি উপস্থাপন করতেও এইভাবে ব্যবহার করুন ... পিএইচপি ফাংশন file_get_content
এবং পরবর্তী ফাংশনটি ব্যবহার করুনbase64_encode
এবং স্ট্রিং হিসাবে ফলাফল প্রস্তুত data:" . file_mime_type . " base64_encoded string
। এটি img src অ্যাট্রিবিউটে ব্যবহার করুন। নিম্নলিখিত কোড দেখুন আমি আপনার জন্য সাহায্য করতে পারেন।
// A few settings
$img_file = 'raju.jpg';
// Read image path, convert to base64 encoding
$imgData = base64_encode(file_get_contents($img_file));
// Format the image SRC: data:{mime};base64,{data};
$src = 'data: '.mime_content_type($img_file).';base64,'.$imgData;
// Echo out a sample image
echo '<img src="'.$src.'">';
আপনি যদি অক্ষম (কারনের জন্য) ব্যবহার করতে হয় curl
না file_get_contents
, আপনি কি আশেপাশে কাজ করতে পারেন:
$img = imagecreatefrompng('...');
ob_start();
imagepng($img);
$bin = ob_get_clean();
$b64 = base64_encode($bin);
<img src="data:image/png;base64,<?php echo base64_encode(file_get_contents("IMAGE URL HERE")) ?>">
আমি এই সংস্থানটি ব্যবহার করার চেষ্টা করছিলাম কিন্তু ত্রুটি পেতে থাকি, আমি উপরের কোডটি পুরোপুরি কার্যকরভাবে কাজ করে দেখলাম।
আপনার চিত্রের ইউআরএল দিয়ে সবেমাত্র এখানে চিত্রের URL টি প্রতিস্থাপন করুন - http://www.website.com/image.jpg
খুব সাধারণ এবং সাধারণভাবে ব্যবহৃত:
function getDataURI($imagePath) {
$finfo = new finfo(FILEINFO_MIME_TYPE);
$type = $finfo->file($imagePath);
return 'data:'.$type.';base64,'.base64_encode(file_get_contents($imagePath));
}
//Use the above function like below:
echo '<img src="'.getDataURI('./images/my-file.svg').'" alt="">';
echo '<img src="'.getDataURI('./images/my-file.png').'" alt="">';
দ্রষ্টব্য: ফাইলের মাইম-প্রকারটি স্বয়ংক্রিয়ভাবে যুক্ত হবে (এই পিএইচপি ডকুমেন্টেশনের সাহায্য নেবে )।
এনকোড করতে এবং এটি মাইএসকিউএলে সংরক্ষণের জন্য আপলোডের কোড এখানে
if (!isset($_GET["getfile"])) {
if ($_FILES["file"]["error"] > 0) {
echo "Error: " . $_FILES["file"]["error"] . "<br>";
} else {
move_uploaded_file($_FILES["file"]["tmp_name"], $_FILES["file"]["name"]);
$bin_string = file_get_contents($_FILES["file"]["name"]);
$hex_string = base64_encode($bin_string);
$mysqli = mysqli_init();
if (!$mysqli->real_connect('localhost', 'root', '', 'arihant')) {
die('Connect Error (' . mysqli_connect_errno() . ') ' . mysqli_connect_error());
}
$mysqli->query("INSERT INTO upload(image) VALUES ('" . $hex_string . "')");
}
}
চিত্রটি দেখানোর জন্য এটি ব্যবহার করুন
echo "<img src='data:image/jpeg;base64, $image' width=300>";
সিআরএল কল ব্যবহার করে এখানে একটি উদাহরণ দেওয়া হল .. এটি ফাইল_জেট_কন্টেন্টস () ফাংশনের চেয়ে ভাল । অবশ্যই, বেস 64 (এনকোড) ব্যবহার করুন ()
$url = "http://example.com";
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$output = curl_exec($ch);
curl_close($ch);
?>
<img src="data:image/png;base64,<?php echo base64_encode($output);?>">
curl
file_get_contents
প্রাক্তন কলটিতে আপনাকে অতিরিক্ত ডেটা যুক্ত করার প্রয়োজন না থাকলে এটি একেবারে "ভাল" নয় । প্রমাণীকরণ। অধিকন্তু, file_get_contents
যখন সম্ভব একটি স্থানীয় ফাইলের বিষয়বস্তু পেয়ে, এইভাবে একটি বেহুদা নেটওয়ার্কের কল করার না করার ফলব্যাক যাবে।
আপনি কার্লের মাধ্যমে এটিও করতে পারেন, কেবল আপনার একটি চিত্র ফাইলের একটি পাথ প্রয়োজন এবং এটি নীচে প্রদত্ত ফাংশনে পাস করুন ..
public static function getImageDataFromUrl($url)
{
$urlParts = pathinfo($url);
$extension = $urlParts['extension'];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_HEADER, 0);
$response = curl_exec($ch);
curl_close($ch);
$base64 = 'data:image/' . $extension . ';base64,' . base64_encode($response);
return $base64;
}