2017-01-10 8 views
0

複数の画像を選択してBase64文字列に変換したいと考えています。私は1つの配列にファイルをプッシュしました。私の要件は、Base64文字列に変換した後、配列にプッシュすることです。私はBase64文字列に画像を変換することができません。ここでイメージをファイルのBase64文字列に変換するにはどうすればよいですか?

$("input[name=property_images]").change(function() { 
 
    var names = []; 
 
    for (var i = 0; i < $(this).get(0).files.length; ++i) { 
 
     names.push($(this).get(0).files[i].name); 
 
    } 
 
\t console.log(names); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script> 
 
<input type="file" name="property_images" multiple="multiple" />

+0

を保存するためにあなたの関数を変更しますあなたのブラウザはbase64の文字列を扱う際に大きな問題を抱えています。それは私のクロムをクラッシュし、私はbase64メソッドを全く使用できませんでした! –

答えて

2

私は前角度でこれをやって、ちょうどあなたがアイコンよりも大きな画像を持っている場合ことを警告しましたBASE64値

$(document).ready(function(){ 
    $("input[name=property_images]").change(function() { 
     var imgBase64Arr = []; 
     var files = this.files; 
     for (var i = 0; i < files.length; i++) { 
     (function(i){ 
      var FR = new FileReader(); 
      FR.onload = function(e) { 
      imgBase64Arr.push(e.target.result);//adding base64 value to array 

      if(i === files.length -1)//after all files are porcessed 
       submitData(imgBase64Arr) 
      }; 
      FR.readAsDataURL(files[i]); 
     })(i); 
     } 

    }); 

    function submitData(imgBase64Arr){ 
    console.log(imgBase64Arr); 
    } 
}); 
+0

あなたのコードを試しましたUncaught TypeError:未定義のプロパティ '2'を読み取れません FileReader.FR.onloadで –

+0

あなたはいくつのファイルを追加しましたか?単一のファイルで試してください – azad

+0

私は今、単一のファイルを試みましたUncaught TypeError:未定義のプロパティ '1'を読むことができませんFileReader.FR.onloadで –

0

我々はbase64文字列を変換するために、単一のイメージを持っています。

function readFile() { 
 
    if (this.files) { 
 
    for(i=0;i<this.files.length;i++) 
 
     { 
 
    var FR= new FileReader(); 
 
    FR.onload = function(e) { 
 
     //document.getElementById("img").src  = e.target.result; 
 
     //document.getElementById("b64").innerHTML = e.target.result; 
 
     //$("#b64").append("<div></div>").html(e.target.result); 
 
     $('<img src="'+e.target.result+'" />').appendTo('#show-image'); 
 
     $('<p>'+e.target.result+'</p>').appendTo('#text-image'); 
 
    };  
 
    FR.readAsDataURL(this.files[i]); 
 
    } 
 
    } 
 
} 
 

 
document.getElementById("inp").addEventListener("change", readFile, false);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<input id="inp" type='file' multiple> 
 

 

 
<div id='show-image'></div> 
 

 
<div id='text-image'></div>

+0

私はマルチセレクションの画像が必要です –

+1

@Vijay他の人を貼り付けてコピーしないでください。 – azad

+0

@SagunthalaK更新された回答を確認してください。 –

関連する問題