Este es un hilo viejo, pero por completo: tiene mucho sentido codificar imágenes, especialmente las pequeñas (menos de 1k), para usar en CSS. De esta manera, guarda una solicitud, lo que llevaría más tiempo y podría ser aún mayor, debido a los gastos generales.
Depende de para qué necesita la imagen. Si es como una URL en línea, este es el camino a seguir. Sin embargo, no es idéntico a la mera codificación base64.
Pekka
Excelente consejo, ahora crearé una función para editar la carga de archivos, o revertir move_uploaded_file (), gracias
Vinicius De Jesus
121
Fácil:
$imagedata = file_get_contents("/path/to/image.jpg");// alternatively specify an URL, if PHP settings allow
$base64 = base64_encode($imagedata);
tenga en cuenta que esto aumentará los datos en un 33% y tendrá problemas con los archivos cuyo tamaño supere el suyo memory_limit.
@anna lo hace! La codificación Base64 generalmente hará eso.
Pekka
38
Úselo también para representar la imagen en formato de codificación base64 ... busque la función PHP file_get_contenty luego la función de usobase64_encode
y obtener resultado para preparar str as data:" . file_mime_type . " base64_encoded string. Úselo en el atributo img src. vea el siguiente código, ¿puedo ayudarlo?
// 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.'">';
curlno es absolutamente "mejor" que a file_get_contentsmenos que necesite agregar datos adicionales a la llamada, ej. autenticación. Además, file_get_contentsrecurrirá a obtener el contenido de un archivo local cuando sea posible, por lo tanto, no hará una llamada de red inútil.
Hissvard
1
También puede hacer esto a través de curl, solo necesita una ruta a un archivo de imagen y pasarlo a la función dada a continuación.
Respuestas:
Creo que debería ser:
fuente
Fácil:
tenga en cuenta que esto aumentará los datos en un 33% y tendrá problemas con los archivos cuyo tamaño supere el suyo
memory_limit
.fuente
Úselo también para representar la imagen en formato de codificación base64 ... busque la función PHP
file_get_content
y luego la función de usobase64_encode
y obtener resultado para preparar str as
data:" . file_mime_type . " base64_encoded string
. Úselo en el atributo img src. vea el siguiente código, ¿puedo ayudarlo?fuente
En caso de que (por cualquier razón) no pueda usar
curl
nifile_get_contents
, puede solucionar:fuente
Estaba tratando de usar este recurso pero seguía recibiendo un error, encontré que el código anterior funcionaba perfectamente.
Acabo de reemplazar la URL de IMAGEN AQUÍ con la URL de su imagen: http://www.website.com/image.jpg
fuente
Muy simple y de uso común:
Nota: El tipo Mime del archivo se agregará automáticamente (tomando la ayuda de esta documentación de PHP ).
fuente
Aquí está el código para cargar para codificar y guardarlo en MySQL
Para mostrar la imagen usa esto
fuente
Aquí hay un ejemplo usando una llamada cURL. Esto es mejor que la función file_get_contents () . Por supuesto, use base64_encode ()
fuente
curl
no es absolutamente "mejor" que afile_get_contents
menos que necesite agregar datos adicionales a la llamada, ej. autenticación. Además,file_get_contents
recurrirá a obtener el contenido de un archivo local cuando sea posible, por lo tanto, no hará una llamada de red inútil.También puede hacer esto a través de curl, solo necesita una ruta a un archivo de imagen y pasarlo a la función dada a continuación.
fuente