2017-01-14 2 views
1

내 웹 사이트에서 파일 업로드를 처리하기 위해 react-dropzone을 사용하고 있습니다. 파일을 성공적으로로드하면 dropzone은 다음 콜백을 트리거합니다.Reactjs - react-dropzone의 파일을 base64로 인코딩 할 수 없습니다.

onDrop: function (acceptedFiles, rejectedFiles) { 
    myFile = acceptedFiles[0]; 
    console.log('Accepted files: ', myFile); 
} 

이 파일을 base64로 인코딩하고 싶습니다. 수행 할 때 :

var base64data = Base64.encode(myFile) 
console.log("base64 data: ", base64data) // => base64 data: W29iamVjdCBGaWxlXQ==W29iamVjdCBGaWxlXQ== 

업로드 된 파일과 관계없이 항상 동일한 문자열을 출력합니다.

내가 누락 된 항목이 있습니까? 이 파일을 base64로 인코딩해야합니다 (항상 이미지)

답변

2

이 JS Bin은 파일을 base64 : http://jsbin.com/piqiqecuxo/1/edit?js,console,output으로 변환하는 작업 예제입니다. 주요 추가 FileReader.readAsDataURL() 그것은 일

document.getElementById('button').addEventListener('click', function() { 
    var files = document.getElementById('file').files; 
    if (files.length > 0) { 
    getBase64(files[0]); 
    } 
}); 

function getBase64(file) { 
    var reader = new FileReader(); 
    reader.readAsDataURL(file); 
    reader.onload = function() { 
    console.log(reader.result); 
    }; 
    reader.onerror = function (error) { 
    console.log('Error: ', error); 
    }; 
} 
+0

base64로 인코딩 된 문자열을 반환하는 FileReader을 사용하여 파일을 읽는 것 같다. 감사 –

관련 문제