2017-03-20 10 views
0

내 이미지를 Base64로 변환하려고 시도했지만 인코딩 됨 (응용 프로그램이 손상 될 수있는 특수 문자가 없음). 슬프게도 코드가 작동하지 않습니다. 코드에 문제가 있는지 궁금합니다. 여기 이미지를 Base64로 올바르게 변환하려면 어떻게해야합니까?

코드입니다 : 내가 고정

$('#button_upload').on('click', function() { 
     upload(); 
    }); 



    $(":file").on('change', function(){ 
     loadImage(this); 
    }); 




    function isBase64(str) { 
     try { 
      return btoa(atob(str)) == str; 
     }catch (err) { 
      return false; 
     } 
    } 


    function getDataUri(url, callback) { 
     var image = new Image(); 
     image.onload = function (url) { 
      var canvas = document.createElement('canvas'); 
      canvas.width = this.naturalWidth; // or 'width' if you want a special/scaled size 
      canvas.height = this.naturalHeight; // or 'height' if you want a special/scaled size 

      canvas.getContext('2d').drawImage(this, 0, 0); 
      callback(canvas.toDataURL('image/jpeg').replace(/^data:image\/(png|jpg);base64,/, '')); 



     }; 

     image.src = url; 

    }; 

    function loadImage(image) { 
     if (image.files && image.files[0]) { 
      var reader = new FileReader(); 
      reader.onload = imageIsLoaded; 
      reader.readAsDataURL(image.files[0]); 
     }; 
    }; 

    function imageIsLoaded(e) { 
     $('#myImg').attr('src', e.target.result); 
    }; 

    function upload() { 

     var src = document.getElementById('myImg').src 
     getDataUri(src, function (dataUri) { 
      var parameters= { 
       picture: dataUri 
      }; 

답변

0

그 라인 :

FROM

callback(canvas.toDataURL('image/jpeg').replace(/^data:image\/(png|jpg);base64,/, '')); 

callback(canvas.toDataURL('image/jpeg').replace(/^data:image\/(png|jpeg);base64,/, '')); 
,691 TO

문자열 리터럴이므로 정규 표현식은 상황과 정확히 일치해야합니다.