pour l'intégrer dans l'attribut src de la balise Img
Volatil3
5
C'est un vieux fil, mais pour être complet: il est très logique d'encoder des images, en particulier les petites (moins de 1k), pour une utilisation en CSS. De cette façon, vous enregistrez une demande, ce qui prendrait plus de temps et pourrait être encore plus important, en raison des frais généraux.
Cela dépend de ce dont vous avez besoin de l'image. S'il s'agit d'une URL en ligne, c'est la voie à suivre. Ce n'est pas identique au simple encodage base64.
Pekka
Excellente astuce, maintenant je vais créer une fonction pour éditer le téléchargement de fichiers, ou revenir à move_uploaded_file (), merci
Vinicius De Jesus
121
Facile:
$imagedata = file_get_contents("/path/to/image.jpg");// alternatively specify an URL, if PHP settings allow
$base64 = base64_encode($imagedata);
gardez à l'esprit que cela agrandira les données de 33% et vous aurez des problèmes avec les fichiers dont la taille dépasse la vôtre memory_limit.
@anna c'est le cas! Le codage Base64 fera généralement cela.
Pekka
38
Utilisez également cette façon de représenter l'image au format de codage base64 ... trouver la fonction PHP file_get_contentet à côté de la fonctionbase64_encode
et obtenir le résultat pour préparer str data:" . file_mime_type . " base64_encoded string. Utilisez-le dans l'attribut img src. voir le code suivant puis-je vous aider.
// 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.'">';
curln'est absolument pas "mieux" que file_get_contentssi vous n'avez pas besoin d'ajouter des données supplémentaires à l'appel par ex. authentification. De plus, cela file_get_contentsreviendra à obtenir le contenu d'un fichier local lorsque cela sera possible, ne faisant donc pas un appel réseau inutile.
Hissvard
1
Vous pouvez également le faire via curl, il vous suffit d'avoir un chemin vers un fichier image et de le passer à la fonction indiquée ci-dessous.
Réponses:
Je pense que ça devrait être:
la source
Facile:
gardez à l'esprit que cela agrandira les données de 33% et vous aurez des problèmes avec les fichiers dont la taille dépasse la vôtre
memory_limit
.la source
Utilisez également cette façon de représenter l'image au format de codage base64 ... trouver la fonction PHP
file_get_content
et à côté de la fonctionbase64_encode
et obtenir le résultat pour préparer str
data:" . file_mime_type . " base64_encoded string
. Utilisez-le dans l'attribut img src. voir le code suivant puis-je vous aider.la source
Au cas où vous seriez (pour une raison quelconque) incapable d'utiliser
curl
nifile_get_contents
, vous pouvez contourner:la source
J'essayais d'utiliser cette ressource mais continuais à recevoir une erreur, j'ai trouvé que le code ci-dessus fonctionnait parfaitement.
Vous venez de remplacer l'URL D'IMAGE ICI par l'URL de votre image - http://www.website.com/image.jpg
la source
Très simple et à utiliser couramment:
Remarque: Le type MIME du fichier sera ajouté automatiquement (en prenant l'aide de ce documentation PHP ).
la source
Voici le code à télécharger pour l'encoder et l'enregistrer sur MySQL
Pour afficher l'image, utilisez ceci
la source
Voici un exemple utilisant un appel cURL. C'est mieux que la fonction file_get_contents () . Bien sûr, utilisez base64_encode ()
la source
curl
n'est absolument pas "mieux" quefile_get_contents
si vous n'avez pas besoin d'ajouter des données supplémentaires à l'appel par ex. authentification. De plus, celafile_get_contents
reviendra à obtenir le contenu d'un fichier local lorsque cela sera possible, ne faisant donc pas un appel réseau inutile.Vous pouvez également le faire via curl, il vous suffit d'avoir un chemin vers un fichier image et de le passer à la fonction indiquée ci-dessous.
la source