2016-08-19 6 views
0

나는 자른 이미지가 this cropper입니다. 자른 이미지의 버전은 base64입니다.Firebase storage uploading broken image

이미지를 blob 또는 file 이미지로 변환하려고 시도하면 아래 코드를 사용하여 firebase storage에 업로드 할 수 있습니다.

var imageBase64 = $scope.cropper.croppedImage.split(',')[1]; 
var blob = new Blob([imageBase64], {type: 'image/png'}); 
var file = new File([imageBase64], 'imageFileName2.png', {type: 'image/png'}); 

내가 file를 인쇄하려고 할 때이처럼 보이는 acutal File 객체를 만들었습니다.

{ 
    lastModified:1471604365544, 
    lastModifiedDate:"Fri Aug 19 2016 18:59:25 GMT+0800 (PHT)", 
    name:"imageFileName2.png", 
    size:228808, 
    type:"image/png", 
    webkitRelativePath:"" 
} 

File

성공적하지만 업로드되고있다,하지만 결과는 끊어집니다. ,

enter image description here

base64 이미지가 파손되지 않는다는 것을 증명하려면 다음 firebase storage 대시 보드에 미리은 (는 로딩을 중지하지, 나는 그것을 다운로드하려고 할 때, 나는 깨진 이미지를 가지고)과 같다 여기 내 고양이 Akashabase64 사진이 있습니다.이 사진은 base64 viewer에서 미리 볼 수 있습니다.

답변

0

3.3.0 JS 클라이언트에서 base64 문자열 (docs)을 업로드 할 수 있습니다.

var imageBase64 = $scope.cropper.croppedImage.split(',')[1]; 
ref.putString(imageBase64, 'base64').then(function(snapshot) { 
    console.log('Uploaded a base64 string!'); 
}); 

BlobFile API를 모두 당신이 기본적으로 유효하지이었다 base64 문자열을했다 하나의 항목을 포함하는 배열을 생성하고 그래서 base64 문자열이 아닌 UInt8Array를 취할 얼룩. 위의 업로드를 사용하여 문제를 해결하십시오.

+0

var blob ([new Uint8Array ([success])], {type : "image/jpeg"})와 같은 blob 유형으로 어떻게 할 수 있습니까? – Ozan

+0

@Ozi 문서를 참조하십시오 : https://firebase.google.com/docs/storage/web/upload-files#upload_from_a_blob_or_file,'ref.put (imageBlob)'사용. –

관련 문제