Maison > développement back-end > Problème PHP > Comment convertir des fichiers au format d'encodage base64 en php

Comment convertir des fichiers au format d'encodage base64 en php

L
Libérer: 2023-03-01 11:16:01
original
6758 Les gens l'ont consulté

Comment convertir des fichiers au format d'encodage base64 en php

Comment convertir des fichiers image au format d'encodage base64 en php

PHP prend très bien en charge Base64 et a intégré Les base64_encode et base64_decode sont responsables de l'encodage et du décodage Base64 des images.

En termes d'encodage, il suffit de lire le flux d'images puis d'utiliser base64_encode pour l'encoder.

/**
 * 获取图片的Base64编码(不支持url)
 * @date 2017-02-20 19:41:22
 *
 * @param $img_file 传入本地图片地址
 *
 * @return string
 */
function imgToBase64($img_file) {
    $img_base64 = '';
    if (file_exists($img_file)) {
        $app_img_file = $img_file; // 图片路径
        $img_info = getimagesize($app_img_file); // 取得图片的大小,类型等
        //echo &#39;<pre class="brush:php;toolbar:false">&#39; . print_r($img_info, true) . &#39;

'; $fp = fopen($app_img_file, "r"); // 图片是否可读权限 if ($fp) { $filesize = filesize($app_img_file); $content = fread($fp, $filesize); $file_content = chunk_split(base64_encode($content)); // base64编码 switch ($img_info[2]) { //判读图片类型 case 1: $img_type = "gif"; break; case 2: $img_type = "jpg"; break; case 3: $img_type = "png"; break; } $img_base64 = 'data:image/' . $img_type . ';base64,' . $file_content;//合成图片的base64编码 } fclose($fp); } return $img_base64; //返回图片的base64 } //调用使用的方法 $img_dir = dirname(__FILE__) . '/uploads/img/11213223.jpg'; $img_base64 = imgToBase64($img_dir); echo ''; //图片形式展示 echo '
'; echo $img_base64; //输出Base64编码
Copier après la connexion

Le décodage est un peu plus gênant. La raison est qu'après avoir codé l'image dans une chaîne base64, ces caractères data:image/png;base64 seront ajoutés à l'encodage, qui est à l'origine utilisé pour la reconnaissance base64. . Cependant, si vous le mettez directement dans PHP et utilisez la fonction base64_decode pour le décoder, le format final du fichier image enregistré sera endommagé. La solution est de supprimer d'abord cette chaîne de caractères :

$base64_string= explode(&#39;,&#39;, $base64_string); //截取data:image/png;base64, 这个逗号后的字符
$data= base64_decode($base64_string[1]);  //对截取后的字符使用base64_decode进行解码
file_put_contents($url, $data); //写入文件并保存
Copier après la connexion

Tutoriel recommandé : " Tutoriel PHP

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
php
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal