Dies ist ein alter Thread, aber der Vollständigkeit halber: Es ist sehr sinnvoll, Bilder, insbesondere kleine (unter 1 KB), für die Verwendung in CSS zu codieren. Auf diese Weise speichern Sie eine Anforderung, die aufgrund des Overheads länger dauern und möglicherweise sogar noch größer ist.
Es hängt davon ab, wofür Sie das Bild benötigen. Wenn es sich um eine Inline-URL handelt, ist dies der richtige Weg. Es ist jedoch nicht identisch mit der reinen Base64-Codierung.
Pekka
Ausgezeichneter Tipp, jetzt erstelle ich eine Funktion zum Bearbeiten des Hochladens von Dateien oder zum Zurücksetzen von move_uploaded_file (), danke
Vinicius De Jesus
121
Einfach:
$imagedata = file_get_contents("/path/to/image.jpg");// alternatively specify an URL, if PHP settings allow
$base64 = base64_encode($imagedata);
Beachten Sie, dass dadurch die Daten um 33% vergrößert werden und Sie Probleme mit Dateien haben, deren Größe Ihre überschreitet memory_limit.
@anna tut es! Die Base64-Codierung erledigt dies im Allgemeinen.
Pekka
38
Verwenden Sie diese Methode auch, um das Bild im Base64-Codierungsformat darzustellen. Suchen Sie die PHP-Funktion file_get_contentund verwenden Sie anschließend die Funktionbase64_encode
und Ergebnis erhalten, um str as vorzubereiten data:" . file_mime_type . " base64_encoded string. Verwenden Sie es im Attribut img src. siehe folgenden Code kann ich für Sie helfen.
// 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.'">';
Ich habe versucht, diese Ressource zu verwenden, habe aber immer wieder einen Fehler erhalten. Ich habe festgestellt, dass der obige Code perfekt funktioniert.
Hier ist ein Beispiel für die Verwendung eines cURL-Aufrufs. Dies ist besser als die Funktion file_get_contents () . Verwenden Sie natürlich base64_encode ()
curlist absolut nicht "besser" als es file_get_contentssei denn, Sie müssen dem Anruf ex zusätzliche Daten hinzufügen. Authentifizierung. Darüber hinaus file_get_contentswird nach Möglichkeit darauf zurückgegriffen, den Inhalt einer lokalen Datei abzurufen, sodass kein nutzloser Netzwerkanruf erfolgt.
Hissvard
1
Sie können dies auch über Curl tun. Sie benötigen lediglich einen Pfad zu einer Bilddatei und übergeben ihn an die unten angegebene Funktion.
Antworten:
Ich denke, dass es sein sollte:
quelle
Einfach:
Beachten Sie, dass dadurch die Daten um 33% vergrößert werden und Sie Probleme mit Dateien haben, deren Größe Ihre überschreitet
memory_limit
.quelle
Verwenden Sie diese Methode auch, um das Bild im Base64-Codierungsformat darzustellen. Suchen Sie die PHP-Funktion
file_get_content
und verwenden Sie anschließend die Funktionbase64_encode
und Ergebnis erhalten, um str as vorzubereiten
data:" . file_mime_type . " base64_encoded string
. Verwenden Sie es im Attribut img src. siehe folgenden Code kann ich für Sie helfen.quelle
Nur für den Fall sind Sie (aus irgendeinem Grund) nicht in der Lage zu verwenden ,
curl
nochfile_get_contents
können Sie umgehen:quelle
Ich habe versucht, diese Ressource zu verwenden, habe aber immer wieder einen Fehler erhalten. Ich habe festgestellt, dass der obige Code perfekt funktioniert.
Ersetzen Sie einfach die BILD-URL HIER durch die URL Ihres Bildes - http://www.website.com/image.jpg
quelle
Sehr einfach und häufig zu verwenden:
Hinweis: Der Mime-Typ der Datei wird automatisch hinzugefügt (Hilfe aus dieser PHP-Dokumentation ).
quelle
Hier ist der Code zum Hochladen, um ihn zu codieren und in MySQL zu speichern
Verwenden Sie diese Option, um das Bild anzuzeigen
quelle
Hier ist ein Beispiel für die Verwendung eines cURL-Aufrufs. Dies ist besser als die Funktion file_get_contents () . Verwenden Sie natürlich base64_encode ()
quelle
curl
ist absolut nicht "besser" als esfile_get_contents
sei denn, Sie müssen dem Anruf ex zusätzliche Daten hinzufügen. Authentifizierung. Darüber hinausfile_get_contents
wird nach Möglichkeit darauf zurückgegriffen, den Inhalt einer lokalen Datei abzurufen, sodass kein nutzloser Netzwerkanruf erfolgt.Sie können dies auch über Curl tun. Sie benötigen lediglich einen Pfad zu einer Bilddatei und übergeben ihn an die unten angegebene Funktion.
quelle