1

크롬 확장에서 XMLHttp 요청을 사용하여 TWITPIC에 이미지 파일을 업로드하는 중입니다. 이미지를 페이로드로 보내야합니다. 이것을 할 수있는 방법이 있습니까? 이 링크를 찾았습니다 Convert an image into binary data in javascript 하지만 이미지 태그에서 작동합니다. TWITPIC에 이미지 파일 경로 및 업로드 이미지를 지정하는 방법이 필요합니다.이미지를 바이너리 데이터 또는 자바 스크립트 문자열로 변환

HTML5가있는 FileReader API에 대해 알게되었습니다. 사용 방법이 있습니까? ?? 로컬 파일에서 작동해야합니다.

Chrome 확장 프로그램은 로컬 호스트 서버를 실행하지 않고 FileReader API를 지원합니까 ?? 당신은 대한 XMLHttpRequests를 사용하여 이미지의 바이너리 데이터를 가져 오기 위해 이것을 사용할 수 있습니다

답변

-1

, 나는 유사한 목적을 위해 최근 사용 :

var dataToBinary = function(data){ 
    var data_string = ""; 
    for(var i=0; i<data.length; i++){ 
     data_string += String.fromCharCode(data[i].charCodeAt(0) & 0xff); 
    } 
    return data_string; 
}; 

$.ajax("http://some.site.com/myImage.jpg", { 
    success: function(data){ 
     binary = dataToBinary(data); 
     //or: 'binary = data', dataToBinary might not be needed 
    }, 
    mimeType: "text/plain; charset=x-user-defined" 
}); 

그리고 바이너리 데이터는 binary 변수에 저장됩니다.

+0

답장을 보내 주셔서 감사합니다. – Ram

3

직접 답변을 찾았습니다. Chrome 확장 프로그램은 HTML 5의 FileReader API를 지원합니다. 따라서 아래 코드는 간단합니다.

var reader = new FileReader(); 
    reader.readAsDataURL(f); 
+2

이 base64는 바이너리가 아닌 파일을 인코딩하며 ~ 33 % 정도의 파일 크기를 부풀게합니다. 문제는 아니지만 고려해야 할 가치가 있습니다. 'readAsBinaryString (f)'는 파일을 바이너리 데이터로 반환하지만 IE10과 호환되지 않는 것으로 보입니다. – Josh

관련 문제