375 Stimmen

Konvertierung eines Bildes in Base64-Kodierung

Wie kann ich ein Bild von einer URL in Base64-Kodierung umwandeln?

14voto

GoldenGonaz Punkte 1036
<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

3voto

Vivek Punkte 1360

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>";

3voto

Tayyab Hussain Punkte 1478

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;
}

2voto

JeanAlesi Punkte 418

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);?>">

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X