2016-11-24 66 views
0

情況:我使用lepozepo:cloudinary軟件包將圖像上傳成爲Meteor應用程序的配置文件圖片。所以每個用戶有1個配置文件圖像。上傳新照片將取代照片。同樣,刪除它將刪除唯一上傳的圖片。如何檢索Cloudinery上傳的圖像並將其刪除?

所以我的問題是:

  • 我需要有一個集合存儲圖像?我更喜歡 上傳到雲,並獲取URL以顯示它基於userId。
  • 一旦圖片上傳,如何顯示上傳的圖片,如果不顯示默認圖片,我該如何顯示{{#if image}}?
  • 我覺得上傳堆棧。有沒有什麼辦法可以指定1張圖片的maximim上傳。如果上傳另一個,那麼它會替換現有的?
  • 我該如何才能顯示最新上傳的圖片?


該代碼。 ** config.js在服務器和客戶端都被設置。

1)profile.js

Template.profile.events({ 
    'submit form': function(e, t) { 
     e.preventDefault(); 

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

     Cloudinary._upload(files[0], {}, function(err, res) { 
     if (err){ 
      console.log("Error: " + err); 
     } else { 
      console.log("Success :" + res); 
     } 
     }); 

    } 

}); 

2)profile.html

<form> 
    <input type="file" id="userimage" name="userimage" class='upload_field cloudinary_fileupload' /> 
     <div class="progress_bar" style='background-color: red, height: 20px'> 
     <div class='thumbnails'></div> 
    <button type="submit"> Upload </button> 
    <button type="delete"> Clear </button> 
    </form> 

回答

1

我想你所熟悉的流星:

  • 我需要有一個集合來存儲圖像?我更喜歡上傳到雲,並獲取URL來顯示它基於userId。

您肯定需要將結果存儲在您的數據庫中,因爲這是用戶的頭像,一個用戶只有一個頭像。所以我建議將其存儲在User收集

  • 一旦圖片上傳中,如何我有一個{{#如果圖像}}然後顯示上傳PIC,如果沒有顯示的默認PIC?

如果您決定將圖像存儲在集合中,User爲ex,則上傳後需要將結果插入/更新到該集合。然後反應性應該解決這個問題(當然你必須訂閱和檢索image幫手內的值)

  • 我認爲上傳堆棧和。有沒有什麼辦法可以指定最大上傳1張圖片。如果上傳另一個,那麼它會替換現有的?

我不太瞭解這個問題,但你總是可以禁用更新的形式而存在一個未完成的上傳過程

  • 我怎麼那麼只顯示最新上傳圖片?

上傳後,只需將最新的結果更新到你的數據庫。

+0

即時通訊,不太熟悉。我沒有用戶集合,因爲我使用流星內置的一個。是否有可能說圖像收集,並在當前用戶下標記?即userId:Meteor.userId()?如果不是,我應該如何設置用戶集合? – Thinkerer

+0

您正在使用流星內置的帳戶系統嗎?這意味着你有一個用戶集合。當你添加'accounts- *'包時,Meteor在Mongodb爲你創建一個名爲'users'的集合。要存儲化身,只需將其更新到您的用戶文檔:'Meteor.users.update({_ id:Meteor.userId()},{$ set:{'profile.avatar':public_id}});' – Khang

+0

我已標記這是一個答案。此外,我遇到了進一步的錯誤,並已張貼在這裏 http://stackoverflow.com/questions/40992614/public-id-is-not-defined-meteorcloudinary – Thinkerer

相關問題