Wie kann ich ein Bild von einer URL in Base64-Kodierung umwandeln?
Antworten
Zu viele Anzeigen?<img src="data:image/png;base64,<?php echo base64_encode(file_get_contents("IMAGE URL HERE")) ?>">
Ich habe versucht, diese Ressource zu nutzen, aber ich bekam immer wieder eine Fehlermeldung. Ich fand den obigen Code funktionierte perfekt.
Ich habe einfach "IMAGE URL HERE" durch die URL Ihres Bildes ersetzt - http://www.website.com/image.jpg
Hier ist der Code für das Hochladen, um es zu verschlüsseln und in einer MySQL-Datenbank zu speichern:
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 . "')");
}
}
Um das Bild anzuzeigen, verwenden Sie dies:
echo "<img src='data:image/jpeg;base64, $image' width=300>";
Sie können dies auch tun über cURL . Sie brauchen nur einen Pfad zu einer Bilddatei und übergeben ihn an die unten angegebene Funktion...
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;
}
Hier ist ein Beispiel mit einer cURL anrufen... Das ist besser als der file_get_contents() Funktion. Natürlich, verwenden Sie base64_encode() .
<?php
$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);?>">
- See previous answers
- Weitere Antworten anzeigen