2017-02-04 7 views
0

필요한 작업 : 웹캠을 사용하여 사진을 찍는 웹 페이지가 있습니다. 버튼을 클릭하면 현재 웹캠 이미지를 HTML 캔버스 객체에 저장합니다. 캔버스 객체에서 이미지를 가져 오면 Base64로 인코딩 된 문자열로 표시됩니다.웹 API에 파일 스트림으로 이미지 (base64 문자열) 업로드

데이터 : 이미지/PNG가, Base64로, iVBORw0KGgoAAAANSUhEUgAAAJYAAABwCAYAAAD8HIl9AAAgAElEQVR4Xky9B7hld3Hl ... 다른 쪽 끝에서

서버에 사진을 저장하는 데 사용되는 웹 API 서비스입니다. C#으로 작성되었으며 FileStream이 필요합니다.

내 프런트 엔드는 HTML과 자바 스크립트 (각도/Jquery 포함) 만 사용하여 작성되었습니다. 예상되는 형식으로 이미지를 서버에 보내야합니다.

저는 2 일 동안 머리를 벽에 치고있었습니다. 그것은 내가해야 할 일은 FormData 객체를 생성하고, 이미지를 추가하고, 전송하는 것입니다. 하지만 이렇게하면 나에게 200 오류가 발생합니다. 뭔가 올바르게 형성되지 않았습니다.

파일 형식의 입력 요소를 사용하고 디스크에서 파일을 업로드하는 동안이 코드는 완벽하게 작동합니다. base64 이미지 문자열을 전달하면 실패합니다. FormData 객체에 이미지 문자열을 추가하면 실패합니다.

factory.setPhoto = function (id, image) { 
    var fd = new FormData(); 
    fd.append('file', image); 
    return $http.post(baseUrl + '/' + id, fd, { 
     transformRequest: angular.identity, 
     headers: { 'Content-Type': undefined } 
    }).then(function (results) { 
     // whatever 
    }); 
}; 

답변

1

base64 데이터 구성 요소를 원시 바이너리 데이터로 변환 한 다음 formdata로 전달해야합니다. 이 게시물에서 해결책 중 하나를 시도해보십시오.

https://stackoverflow.com/a/5100158/1980415