【问题标题】:How do I retrieve Cloudinery uploaded images and remove them?如何检索 Cloudinery 上传的图像并将其删除?
【发布时间】:2016-11-24 09:35:33
【问题描述】:

情况:我使用 lepozepo:cloudinary 包在 Meteor 应用上将图片上传为个人资料图片。所以每个用户都有 1 个个人资料图像。上传新照片将替换照片。同样,删除它会删除唯一上传的图片。

所以我的问题是:

  • 我是否需要一个集合来存储图像?我更喜欢 上传到云端,根据userId获取URL展示。
  • 上传图片后,我如何有一个{{#if image}}然后显示上传的图片,如果没有显示默认图片?
  • 我认为上传会不断叠加。有什么方法可以指定最大上传 1 张图片。如果上传另一个,那么它将取代现有的?
  • 然后如何只显示最新上传的图片?


代码。 ** 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>

【问题讨论】:

    标签: javascript html meteor


    【解决方案1】:

    我想你对 Meteor 很熟悉:

    • 我是否需要一个集合来存储图像?我更喜欢上传到云端并根据 userId 获取 URL 以显示它。

    您肯定需要将结果存储在您的数据库中,因为这是用户的头像,一个用户只有一个头像。所以我建议将其存储在User 集合中

    • 上传图片后,我如何有一个{{#if image}}然后显示上传的图片,如果没有显示默认图片?

    如果您决定将图像存储在集合中,例如User,那么在上传后您需要将结果插入/更新到该集合。那么响应式应该可以解决问题(当然你必须订阅并检索image helper 中的值)

    • 我认为上传会不断叠加。有什么方法可以指定最大上传 1 张图片。如果上传另一个,那么它将取代现有的?

    我不太明白这个问题,但您可以在上传过程未完成时禁用更新表单

    • 然后如何只显示最新上传的图片?

    上传后,只需将最新结果更新到您的数据库。

    【讨论】:

    • 我还好,不太熟悉。我没有用户集合,因为我使用 Meteor 内置的集合。是否可以说图像集合,并在当前用户下标记它?即userId:Meteor.userId()?如果不是,我应该如何设置用户集合?
    • 你用的是Meteor内置的账号系统吧?这意味着您确实有一个用户集合。当您添加 accounts-* 包时,Meteor 会在 Mongodb 中为您创建一个名为 users 的集合。要存储头像,只需将其更新到您的用户文档:Meteor.users.update({_id: Meteor.userId()}, {$set: {'profile.avatar': public_id}});
    • 我已将此标记为答案。我还遇到了另一个错误,并将其发布在这里stackoverflow.com/questions/40992614/…
    猜你喜欢
    • 2021-10-27
    • 2023-01-08
    • 2011-11-24
    • 2018-11-27
    • 2019-05-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多