2015-08-10 13 views
5

Ich versuche, ein Foto mit Lepozepo/cloudinaryMeteor: Cloudinary

Dies ist mein Server und Client Config

Server hochladen:

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

Client:

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

Ich habe versucht, das Bild mit einer Form

HTML-Formular-Code zu laden:

<form> 
    <input type="file" id="userimage" name="userimage"/> 
    <button type="submit">Upload</button> 
</form> 

Und das ist mein das ist das Ereignis für die Vorlage

Template.signup.events({ 
    // Submit signup form event 
    'submit form': function(e, t){ 
     // Prevent default actions 
     e.preventDefault(); 

    var file = $('#userimage')[0].files[0]; 
    console.log(file) 
    Cloudinary.upload(file, function(err, res) { 
      console.log("Upload Error: " + err); 
      console.log("Upload Result: " + res); 
     }); 
    }  
}); 

Wenn ich Upload-Button nichts klicken Sie passieren, ich habe gerade einen Fehler

error: uncaught TypeError: Failed to execute 'readAsDataURL' on `'FileReader': parameter 1 is not of type 'Blob'.` 

Was kann ich tun, damit dies funktioniert?

Antwort

2

Ich finde einen Weg, um es zu lösen.

  1. Lepozepo/cloudinary Cloudinary.upload Methodendatei Parameter ist ein Array, ich fügen Sie einfach diesen Code:

    var files = [] 
    var file = $('#userimage')[0].files[0]; 
    files.push(file) 
    console.log(files) 
    

Und es funktionieren

+0

Ich bin nicht in der Lage, das Antwortobjekt auf diese Weise zu erhalten. Ich kann weder die Foto-ID noch die Bild-URL abrufen. Wie kann ich das bekommen? – jro

+0

Ich habe ein gleiches Problem. Ich kann Datei zu Cloudinary hochladen. Aber ich kann keine Callback-Ergebnisse erhalten. –

+0

Ich kann Fehler und Antwort mit "_upload_file" statt "upload" abfangen. –

3

Bitte verwenden Sie "_upload_file" statt " hochladen". "_upload_file" wird tatsächlich in "upload" verwendet. Aber irgendwie können Sie Fehler und Antwort nicht erfassen, wenn Sie "Upload" verwenden

Sie können Fehler und Antwort fangen.

Meteor Version: 1.1.0.3

lepozepo: cloudinary: 1.0.2

Cloudinary._upload_file(files[0], {}, function(err, res) { 
    if (err){ 
    console.log(err); 
    return; 
    } 
    console.log(res); 
}); 
+0

Vielleicht hat Lepozepo einige Änderungen oder etwas, aber danke :). Meine Methode funktioniert immer noch für mich (Ich habe in letzter Zeit kein Meteorupdate ausgeführt. –

0

Ich werde das jetzt in der Quelle Patch als auch einzelne Dateien zu akzeptieren. Aber ja, die Cloudinary.upload Funktion erwartet Cloudinary.upload(files) und nicht Cloudinary.upload(files[n])