Heim  >  Artikel  >  Backend-Entwicklung  >  PHP implementiert die Base64-Bild-Upload-Methode

PHP implementiert die Base64-Bild-Upload-Methode

高洛峰
高洛峰Original
2017-02-24 17:23:172833Durchsuche

In diesem Beispiel wird File Post nicht zum Hochladen von Dateien verwendet! Das Prinzip ist dasselbe. Um base64 besser zu verstehen, wählen Sie die Ausgabe im Textfeld und senden Sie es an den Server! Bei der Anwendung auf Projekte wird empfohlen, eine Datei einzureichen.

HTML-Code

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<title>简单的html5 File测试 for pic2base64</title> 
<style> 
</style> 
<script> 
  window.onload = function(){ 
    var input = document.getElementById("demo_input"); 
    var result= document.getElementById("result"); 
    var img_area = document.getElementById("img_area"); 
    if ( typeof(FileReader) === &#39;undefined&#39; ){
      result.innerHTML = "抱歉,你的浏览器不支持 FileReader,请使用现代浏览器操作!"; 
      input.setAttribute(&#39;disabled&#39;,&#39;disabled&#39;); 
    }else{
      input.addEventListener(&#39;change&#39;,readFile,false);
    } 
  }
  function readFile(){
    var file = this.files[0]; 
    //这里我们判断下类型如果不是图片就返回 去掉就可以上传任意文件  
    if(!/image\/\w+/.test(file.type)){
      alert("请确保文件为图像类型"); 
      return false; 
    }
    var reader = new FileReader(); 
    reader.readAsDataURL(file); 
    console.log();
    reader.onload = function(e){ 
        result.innerHTML = this.result; 
        img_area.innerHTML = &#39;<p class="sitetip">图片img标签展示:</p>![](&#39;+this.result+&#39;)&#39;; 
    }
  } 
</script> 
</head>

<body> 
  <form action="file.php" method="post">
  <input type="file" value="sdgsdg" id="demo_input" /> 
  <textarea name="img" id="result" rows=30 cols=300></textarea> 
  <p id="img_area"></p> 
  <input type="submit" value="提交">
</form>
</body> 
</html>

PHP-Funktionsblockcode

<?php
/**
 * base64图片上传
 * @param $base64_img
 * @return array
 */
$base64_img = trim($_POST[&#39;img&#39;]);
$up_dir = &#39;./upload/&#39;;//存放在当前目录的upload文件夹下

if(!file_exists($up_dir)){
  mkdir($up_dir,0777);
}

if(preg_match(&#39;/^(data:\s*image\/(\w+);base64,)/&#39;, $base64_img, $result)){
  $type = $result[2];
  if(in_array($type,array(&#39;pjpeg&#39;,&#39;jpeg&#39;,&#39;jpg&#39;,&#39;gif&#39;,&#39;bmp&#39;,&#39;png&#39;))){
    $new_file = $up_dir.date(&#39;YmdHis_&#39;).&#39;.&#39;.$type;
    if(file_put_contents($new_file, base64_decode(str_replace($result[1], &#39;&#39;, $base64_img)))){
      $img_path = str_replace(&#39;../../..&#39;, &#39;&#39;, $new_file);
      echo &#39;图片上传成功</br>![](&#39; .$img_path. &#39;)&#39;;
    }else{
          echo &#39;图片上传失败</br>&#39;;

    }
  }else{
    //文件类型错误
  echo &#39;图片上传类型错误&#39;;
  }

}else{
  //文件错误
  echo &#39;文件错误&#39;;
}

Der Beispieleffekt ist wie folgt:

PHP implementiert die Base64-Bild-Upload-Methode

Das Obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, er wird für das Lernen aller hilfreich sein Ich hoffe auch, dass jeder die chinesische PHP-Website unterstützt.

Weitere Artikel darüber, wie PHP das Hochladen von Base64-Bildern implementiert, finden Sie auf der chinesischen PHP-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