2017-01-01 8 views
1

유성 앱에 Cloudinary를 추가하려고합니다.Meteor and Cloudinary - 콜백이 실행되지 않음

이미지가 구름 형 미디어 라이브러리에 표시되지 않으며 업로드 기능 콜백이 실행되지 않습니다. 내가 전에 문제가 있었다 알고 있어요,하지만 내가 아무것도 도움을 보인다 :

https://github.com/Lepozepo/cloudinary/issues/21

Meteor: Cloudinary

How to integrate Cloudinary with Meteor

Template.commentSubmit.events({ 
    'submit form': function(e, template) { 
    e.preventDefault(); 

    var image = Session.get('photo'); // get image from mdg:camera 
    //console.log(image); 

    Cloudinary.upload(image, function(err, res) { 
     if (err){ 
     console.log("Error: " + err); 
     return; 
     } 
     console.log("Success: " + res); 
    }); 

// code adding comment and image to mongodb 

}); 

서버 :

Cloudinary.config({ 
    cloud_name: '****', 
    api_key: '****', 
    api_secret: '*****' 
}); 

클라이언트 :

$.cloudinary.config({ 
    cloud_name: "******" 
}); 

이미지를 Cloudine 대시 보드에 수동으로 업로드해도 아무런 문제가 없습니다. 최신 버전의 Meteor 및 lepozepo 사용 : cloudinal

모든 도움/제안을 부탁드립니다! :)

UPDATE가 -가이 작업을 얻었다 : 나는이 같은 문제에 달려

var image = Session.get('photo'); 

if(image){ // check if post also includes image 
    var files = []; 
    files.push(dataURLtoBlob(image)); 

    let options = { 
    folder: "app", 
    image_metadata: true 
    }; 

    var imageURL = ""; // loading gif 

    Cloudinary.upload(files, options, function(err, res) { 

     if (err){ 
     console.log("Error: " + err); 
     return; 
     } 
     //console.log(res); 
     imageURL = res.secure_url; 
     //console.log(imageURL); 

    }); 

} 

답변

0

패키지의 이전 버전을 사용하여 "해결". 내 .meteor/패키지 이제이 있습니다

lepozepo:c[email protected]=4.2.2 

갱신 : 데이터, 단순한 입력을 얻기 위해 카메라 : 내가 MDG를 사용하지 않는

. 데스크톱에서 파일 브라우저를 표시합니다. iOS에서는 "사진 찍기/라이브러리에서 선택"패널이 표시됩니다. (안드로이드에서도 작동합니다).

코드는 다음과 같습니다

HTML :

<input type="file" id="upload-image" class="file_bag" accept="image/*"> 

JS :

'change #upload-image': function(event, template) { 
    event.preventDefault(); 

    let files = $('input.file_bag')[0].files; 

    let options = { 
     folder: Meteor.userId(), 
     image_metadata: true 
    }; 

    Cloudinary.upload(files, options, function(error, result) { 
     console.log(result.public_id); 
    }); 
} 
+0

감사 ZIM. 나는 구름 포장을 격하시켰다. 이 오류가 지금 발생합니다 : – sutebu

+0

'Uncaught TypeError : 'FileReader'에서 'readAsDataURL'을 (를) 실행하지 못했습니다. 매개 변수 1의 유형이 'Blob'이 아닙니다. at functions.coffee : 67 at 기능 ._ 각 ._forEach (밑줄 .js? 해시 = cde485f ... : 152)' 나는 인수로 배열을주고 대신 _upload_file 함수를 사용했지만 불운. 'Session.get ('photo');'의 데이터가 구름 함수의 올바른 파일 유형인지 궁금합니다. – sutebu

+0

@sutebu, 대신 입력 태그를 사용해 보셨습니까? 내가 어떻게 대답하는지 업데이트했습니다. – zim