2015-08-17 2 views
2

Я хочу, чтобы пользователям загружать фотографии для своего профиля, и я хочу, чтобы показать их фото на навигационной панели, когда они вошли вКак интегрировать Cloudinary с Метеор

Эти инструкции по lepozepo:. Cloudinary пакет (Я открыт для других альтернатив):

Шаг 1

SERVER

Cloudinary.config 
    cloud_name: 'cloud_name' 
    api_key: '1237419' 
    api_secret: 'asdf24adsfjk' 

КЛИЕНТ

$.cloudinary.config 
    cloud_name:"cloud_name" 

Шаг 2

провода вверх ваш вход [тип = "файл"]. СТОРОНА КЛИЕНТА.

Template.yourtemplate.events 
    "change input[type='file']": (e) -> 
     files = e.currentTarget.files 

     Cloudinary.upload files, 
      folder:"secret" # optional parameters described in http://cloudinary.com/documentation/upload_images#remote_upload 
      (err,res) -> #optional callback, you can catch with the Cloudinary collection as well 
       console.log "Upload Error: #{err}" 
       console.log "Upload Result: #{res}" 

Для каждого шага я не уверен, где разместить код. Например, я не знаю, куда я должен поставить Cloudinary.config. Где на сервере?

Title 
client 
    -helpers 
    config.js 
    -stylesheets 
    -templates 
    profile 
     profile.html 
     profile.js 
    -main.html 
    -main.js 
lib 
    -collections 


server 
    -config 
    *cloudinary.js 
    -fixtures.js 
    -publications.js 

cloudinary.js

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

profile.html

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

profile.js

Template.profile.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); 
     }); 
    } 
}); 
+0

Выглядит жизнь CoffeeScript –

+0

Хорошо, спасибо. Любые идеи о том, как установить все с помощью Meteor? – jro

+0

Я не использую метеорит, но концептуально это аналогичный процесс между различными типами приложений. На сервере вы должны настроить свои ключи, а на интерфейсе вы вызываете API-вызовы на свой сервер (которые взаимодействуют с облачным). Последняя часть (шаг 2 в вашем вопросе) просто добавляет прослушиватель событий к «onchange» входных файлов, сообщая им автоматически загружать в облачную. –

ответ

6

позвольте мне помочь вам.

Я предполагаю, что вы проецируете структуру что-то вроде:

/main 
    /client 
     client.js 
    /server 
     server.js 

Ok, lepozepo: cloudinary написано в coffescript, но вы можете использовать его с ванилью JavaScript, так и с структура папок показано выше, вы можете используйте следующий код:

client.js 
$.cloudinary.config({ 
cloud_name: "yourname" 
}); 

sometemplateveent({ 
    .... some event code 
    Cloudinary.upload(files,{}, function(err, img) { 
    ... do something when uploaded 
    }); 

});  

а затем.

server.js 

Cloudinary.config({ 
cloud_name: 'yourname', 
api_key: 'somekey', 
api_secret: 'someapisecret' 
}); 

Если вам нужна помощь с представить события + загрузить изображение, которое вы можете прочитать этот пост: Meteor: Cloudinary

+0

У меня нет файла client.js или server.js. Должен ли я добавить их? В настоящее время у меня есть папка с клиентом: помощники, таблицы стилей, шаблоны, main.html, main.js – jro

+0

добавьте код клиента в main.js. Вам нужна папка сервера с server.js или main.js, это не имеет значения для имени, только для этой папки. –

+0

Поскольку я хочу, чтобы они загружали фотографию на страницу своего профиля, следует ли вместо этого добавить код клиента в profile.js (это вместе с profile.html входит в мою папку шаблонов)? – jro

Смежные вопросы