php實現base64圖片上傳方式

來源:互聯網
上載者:User
本例子中沒有採用File Post上傳檔案方式!原理一樣,為了更加的理解base64 選擇將其輸出在文本域中,並提交至伺服器!運用到項目中建議採用提交File方式。

html代碼

<!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) === 'undefined' ){      result.innerHTML = "抱歉,你的瀏覽器不支援 FileReader,請使用現代瀏覽器操作!";       input.setAttribute('disabled','disabled');     }else{      input.addEventListener('change',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 = '<p class="sitetip">圖片img標籤展示:</p>![]('+this.result+')';     }  } </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功能塊代碼

<?php/** * base64圖片上傳 * @param $base64_img * @return array */$base64_img = trim($_POST['img']);$up_dir = './upload/';//存放在目前的目錄的upload檔案夾下if(!file_exists($up_dir)){  mkdir($up_dir,0777);}if(preg_match('/^(data:\s*image\/(\w+);base64,)/', $base64_img, $result)){  $type = $result[2];  if(in_array($type,array('pjpeg','jpeg','jpg','gif','bmp','png'))){    $new_file = $up_dir.date('YmdHis_').'.'.$type;    if(file_put_contents($new_file, base64_decode(str_replace($result[1], '', $base64_img)))){      $img_path = str_replace('../../..', '', $new_file);      echo '圖片上傳成功</br>![](' .$img_path. ')';    }else{          echo '圖片上傳失敗</br>';    }  }else{    //檔案類型錯誤  echo '圖片上傳類型錯誤';  }}else{  //檔案錯誤  echo '檔案錯誤';}

執行個體效果如下:

以上就是本文的全部內容,希望對大家的學習有所協助,也希望大家多多支援topic.alibabacloud.com。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.