Heim  >  Artikel  >  Backend-Entwicklung  >  So konvertieren Sie Dateien in PHP in das Base64-Kodierungsformat

So konvertieren Sie Dateien in PHP in das Base64-Kodierungsformat

L
LOriginal
2020-06-02 09:25:116687Durchsuche

So konvertieren Sie Dateien in PHP in das Base64-Kodierungsformat

So konvertieren Sie Bilddateien in PHP in das Base64-Kodierungsformat

PHP unterstützt Base64 sehr gut und hat Eingebaut base64_encode und base64_decode sind für die Base64-Kodierung und -Dekodierung von Bildern verantwortlich.

In Bezug auf die Codierung lesen Sie einfach den Bildstream und verwenden Sie dann base64_encode, um ihn zu codieren.

/**
 * 获取图片的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编码

Die Dekodierung ist etwas aufwändiger. Der Grund dafür ist, dass nach der Kodierung des Bildes in eine Base64-Zeichenfolge diese Zeichen data:image/png;base64 zur Kodierung hinzugefügt werden, die ursprünglich für die Base64-Erkennung verwendet wurde . Wenn Sie es jedoch direkt in PHP einfügen und die Funktion base64_decode zum Dekodieren verwenden, wird das endgültig gespeicherte Bilddateiformat beschädigt. Die Lösung besteht darin, zuerst diese Zeichenfolge zu entfernen:

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

Empfohlenes Tutorial: „ PHP-Tutorial

Das obige ist der detaillierte Inhalt vonSo konvertieren Sie Dateien in PHP in das Base64-Kodierungsformat. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn