JS圖片轉Base64有時候需要向HTML中插入一張圖片,可苦於上線後找不到一個合適的網盤來存儲這些圖片,有沒有一種辦法能將圖片轉換成文字,然後直接插入HTML中呢,通過Base64編碼就可以解決這個問題。廢話不多說直接上代碼。不知道什麼是Base64的請自行百度。
http://tool.hovertree.com/a/base64/
- <!DOCTYPE html>
- <html>
- <head>
- <meta charset="UTF-8">
- <title>JS 圖片轉Base64</title>
- <script src="http://hovertree.com/ziyuan/jquery/jquery-2.2.0.min.js"></script>
- <script>
- function run(input_file,get_data){
- /*input_file:文件按鈕對象*/
- /*get_data: 轉換成功後執行的方法*/
- if ( typeof(FileReader) === 'undefined' ){
- alert("抱歉,你的浏覽器不支持 FileReader,不能將圖片轉換為Base64,請使用現代浏覽器操作!");
- } else {
- try{
- /*圖片轉Base64 核心代碼*/
- var file = input_file.files[0];
- //這裡我們判斷下類型如果不是圖片就返回 去掉就可以上傳任意文件
- if(!/image\/\w+/.test(file.type)){
- alert("請確保文件為圖像類型");
- return false;
- }
- var reader = new FileReader();
- reader.onload = function(){
- get_data(this.result);
- }
- reader.readAsDataURL(file);
- }catch (e){
- alert('圖片轉Base64出錯啦!'+ e.toString())
- }
- }
- }
- $(function () {
- $("input").change(function () {
- run(this, function (data) {
- $('img').attr('src',data);
- $('textarea').val(data);
- });
- });
- });
- </script>
- </head>
- <body>
- <input type="file">
- <hr>
- <img style="max-height: 300px; height: 8em; min-width:8em;">
- <hr>
- <textarea style="display: block; width: 100%;height: 30em;"></textarea>
- </body>
- </html>
Base64圖片的使用
- Base64格式
- data:[][;charset=][;base64],
- Base64 在CSS中的使用
- .demoImg{ background-image: url("data:image/jpg;base64,/9j/4QMZRXhpZgAASUkqAAgAAAAL...."); }
- Base64 在HTML中的使用
- <img width="40" height="30" src="data:image/jpg;base64,/9j/4QMZRXhpZgAASUkqAAgAAAAL...." />