2013-02-15 5 views
1

이미지를 서버에 보낼 준비가 될 때까지 로컬에 저장하는 webapp가 있습니다. 이미지를 로컬에 저장할 때 base64로 인코딩합니다. 이제 이러한 이미지를 사용하여 다중 파일 업로드를 수행하려고합니다.base64 이미지 디코드 및 업로드

그래서 이미지를 다시 바이너리 형식으로 변환해야합니다. 나는 FileReader를 사용하여 이처럼 다시 변환하려고 시도했다.

var fr = new FileReader(); 
fr.onloadend = function(binaryImage){ 
    debugger; 
    binaryImage; 
}; 
var base64Str = item.base64Image.substr(item.base64Image.indexOf("base64") + 7); 
//var base64Str = item.base64Image; 
fr.readAsBinaryString(base64Str); 

그러나 onloadend 이벤트는 절대로 발생하지 않으며 오류가 없다. 이미지를 받으면 업로드하는 데 문제가 없습니다. 어떤 아이디어?

감사합니다.

답변

1

FileReader에 익숙하지 않지만 readAsBinaryString이 Blob 또는 File 객체를 기대하고 있다고 생각합니다. 문자열을 전달하면 제 끝에서 오류가 발생합니다. 이것을 시도하십시오 :

var fr = new FileReader(); 
fr.onloadend = function(binaryImage){ 
    debugger; 
    binaryImage; 
}; 
var blob = new Blob([item.base64Image. 
          substr(item.base64Image.indexOf("base64") + 7)]); 
fr.readAsBinaryString(blob); 

나는 이것이 당신을 원할 것이라고 생각하지 않습니다. Base64를 인코딩/디코딩하는 방법은이 기사에서 확인하십시오. How can you encode to Base64 using Javascript?

웹 키트 브라우저에 btoa() 및 atob()을 사용할 수있는 것처럼 보입니다.

관련 문제