Meteor Collectionfs插入服务器端

2023-12-07

大家好,我使用 collectionfs + gridfs + cfs 文件系统, 在 collectionfs 文档中,我找到了如何在客户端插入文件,如下所示:

Template.myForm.events({
  'change .myFileInput': function(event, template) {
    FS.Utility.eachFile(event, function(file) {
      Images.insert(file, function (err, fileObj) {
        //Inserted new doc with ID fileObj._id, and kicked off the data upload using HTTP
      });
    });
  }
});

在这种情况下,将在客户端插入文件,但在我的情况下,我删除了不安全的文件,因此无法在客户端插入,我尝试将其放在服务器端。这是我的代码:

Template.myForm.events({
    'change . myFileInput': function (event, template) {
        FS.Utility.eachFile(event, function (file) {
            var reader = new FileReader();
            reader.onload = function (fileLoadEvent) {
                Meteor.call('ImageUpload', file, reader.result, function (err, res) {
                    if (err) {
                        console.log(err);
                    } else {
                        alert(res);
                    }
                });
            };
            reader.readAsBinaryString(file);


        });
    }
});

服务器.js:

Meteor.methods({
    ImageUpload: function (fileInfo, fileData) {
        console.log(fileInfo);
        Images.insert(fileInfo, fileData, function (err, fileObj) {
            if (err) console.log(err)
            else {
                //Inserted new doc with ID fileObj._id, and kicked off the data upload using HTTP
                console.log(fileObj);
                return fileObj._id;
            }
        });
    }
});

但它仍然不起作用,请帮我解决这个问题。 如何在服务器端插入?


给你举个例子。我没有测试它,但它显示了你必须走的路。

首先定义一个集合:

我想这一步你已经很清楚了。

var postImagesStoreFS = new FS.Store.FileSystem("postImages", {
  path: "~/workspace/uploads/"
});

添加添加了一些过滤器。以防万一你需要类似的东西。

PostImages = new FS.Collection('postImages', {
  stores: [postImagesStoreFS ],
  filter: {
  maxSize: 3145728,
  allow: {
    contentTypes: ['image/*'],
    extensions: ['png', 'PNG', 'jpg', 'JPG', 'jpeg', 'JPEG']
  }
});

现在您可以在同一个 *.js 文件中定义允许和拒绝函数。如果删除不安全的包,所有插入/更新/删除都必须通过允许/拒绝函数。如果命令通过允许回调,则可以将其插入到您的集合中(如果没有使其无效的拒绝函数)

在这个例子中,如果有用户并且图像的元数据用户是用户本身,我只想插入图像。您必须自行设置元数据用户。对于测试,只需在每个允许函数中返回 true,如 Pent 示例所示。检查流星文档以了解有关允许/拒绝的更多信息http://docs.meteor.com/#allow

PostImages.allow({
  insert: function(userId, doc) {
    return (userId && doc.metadata.owner === userId);
  },
  update: function(userId, doc, fieldNames, modifier) {
    return (userId === doc.metadata.owner);
  },
  remove: function(userId, doc) {
    return false;
  },
  download: function(userId) {
    return !!userId;
  }
});

客户端模板应该按照您发布的方式工作。为了防止您想使用一些元数据,我添加了一个更大的示例。

Template.myForm.events({
  'change .myFileInput': function(event, template) {
    FS.Utility.eachFile(event, function(file) {
      var fsFile = new FS.File(file);
      fsFile.metadata = {owner: Meteor.userId()};
      Images.insert(fsFile, function (err, fileObj) {

      });
    });
  }
});

这应该是您需要拥有的一切。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Meteor Collectionfs插入服务器端 的相关文章

  • 在 contenteditable div 中选择范围

    我有一个contenteditablediv 和其中的一些段落 这是我的代码 div style border solid 1px black width 300px height 300px div Hello world div div
  • 为什么我的淘汰单选按钮在另一个具有点击绑定的元素内时会失败?

    我有一个单选按钮列表 我想要点击 li 他们还检查单选按钮 这一切都有效 直到我放了一个name单选元素上的属性 然后我的代码停止工作 我的代码如下所示 ul li li ul li
  • 如何修改每个JSON对象javascript

    我想修改里面的每个 JSON 值cooldown object cooldown user 1 This user2 0 This 在 Javascript 中使用 for 语句 我研究了好几个小时 只找到了内部的 blocks Edit
  • Three.js:缩放几何图形后错误的 BoundingBox

    在我的场景中 我有一个简单的立方体 var test new THREE Mesh new THREE CubeGeometry 10 10 10 new THREE MeshBasicMaterial scene add test 该立方
  • 可以在初始 DOM 解析期间/之前修改 DOM 吗?

    是否可以在初始 DOM 解析期间或之前修改 DOM 或者我是否必须等到 DOM 被解析和构建之后才能与其交互 更具体地说 是否有可能阻止 DOM 中的脚本元素使用用户脚本 内容脚本或 Chrome 或 Firefox 中的类似脚本运行 在解
  • 引导程序提前输入未填充承诺的响应

    我的引导程序预输入如下
  • 在打字稿中导入 json

    我是 typescript 的新手 在我的项目中 我们使用 typescript2 在我的要求之一中 我需要导入 json 文件 所以我创建了 d ts 文件如下 test d ts declare module json const va
  • React-Redux:state.setIn() 和 state.set() 有什么区别?

    我见过使用setIn and set 在一些react redux代码中 state setIn state set 我在这里找到了一些文档https facebook github io immutable js https facebo
  • 如何纠正流警告:解构(缺少注释)

    我正在编写一个小型 React Native 应用程序 并且正在尝试使用 Flow 但我无法在任何地方真正获得有关它的正确教程 我不断收到错误 destructuring Missing annotation 有关 station 这段代码
  • 设置 cookie 时中断 JavaScript 执行

    当设置 cookie 时 是否可以始终中断浏览器开发人员工具中的 javascript 执行 无需显式设置 JS 断点 document cookie 在 html head 块的开头添加此代码片段效果很好
  • 调整图像大小并将画布旋转 90 度

    这里有很多关于在 js 上使用画布旋转图像的主题 我阅读了其中的大部分内容 但无法找到解决我的问题的方法 我正在接收任何分辨率的图像 来自上传组件 我将其大小调整为 1024x768 如下所示 var canvas document cre
  • 尝试将数据存储在点击器网站中

    我正在尝试存储一个名为的变量score无论何时刷新 您都会一次又一次地使用它 我不明白的是它的代码是什么 我尝试了一些方法 但似乎都不起作用 这是我的答题器网站 但是当我尝试使用 JavaScript 来存储它时 它不起作用window o
  • 在移动设备上滚动

    这个问题更多的是一个建议研究 我确实希望它对其他人有帮助 并且它不会关闭 因为我不太确定在哪里寻求有关此事的建议 在过去的 6 个月里 我一直在进行移动开发 我有机会处理各种设备上的各种情况和错误 最麻烦的是滚动问题 当涉及到在网站的多个区
  • Vue 和 Vuex:处理依赖的计算属性

    我的应用程序是一个使用 Vuex 在 Vue 中构建的精简电子表格 关键组件是TableCollection Table and Row The TableCollection有一个包含多个的数组Table对象 每个Table有一个包含多个
  • 代码镜像错误:未捕获错误:扩展集中无法识别扩展值([对象对象])

    全部 我目前正在从事一个React Electron项目 该项目的目标是完成一个Markdown编辑器 当我配置codemirror 该程序报告错误说 Uncaught Error Unrecognized extension value
  • 在 Javascript 中连接空数组

    我正在浏览一些代码 我想知道这有什么用处 grid push concat row 根据我的理解 它等同于 grid push row 为什么要大惊小怪 连接 你想使用 concat当您需要展平数组并且没有由其他数组组成的数组时 例如 va
  • 如何隐藏/禁用 Highcharts.js 中的图例框?

    我想问是否可以使用 HighCharts js 库隐藏图表中的所有图例框 var chart object chart renderTo render to type graph type colors graph colors title
  • Javascript - 水波纹效果

    我需要 JS 上的脚本 它将以 水波纹 样式更改 images html 抱歉 6MB GIF 文件 http fcuunited ru temp listening2 gif http fcunited ru temp listening
  • 如何在执行新操作时取消先前操作的执行?

    我有一个动作创建器 它会进行昂贵的计算 并在每次用户输入内容时调度一个动作 基本上是实时更新 但是 如果用户输入多个内容 我不希望之前昂贵的计算完全运行 理想情况下 我希望能够取消执行先前的计算并只执行当前的计算 没有内置功能可以取消Pro
  • Vue.js[vuex] 如何从突变中调度?

    我有一个要应用于 json 对象的过滤器列表 我的突变看起来像这样 const mutations setStars state payload state stars payload this dispatch filter setRev

随机推荐

  • SWT 是否分发可在任何受支持的操作系统上运行的 JAR?

    The SWT项目目前为每个受支持的操作系统维护一个可分发的版本 例如 swt 3 4 2 win32 win32 x86 zip swt 3 4 2 gtk linux x86 zip swt 3 4 2 carbon macosx zi
  • EF 6 - 如何正确执行并行查询

    创建报告时 我必须执行 3 个涉及相同上下文的独立实体的查询 因为它们很重 所以我决定使用 ToListAsync 为了让它们并行运行 但是 令我惊讶的是 我得到了一个例外 使用 EF 6 并行执行查询的正确方法是什么 我应该手动启动新任务
  • 为什么使用 LWUIT 的三星手机不支持阿拉伯字体?

    我已经在一些三星手机上测试了我的移动应用程序以进行测试 三星 Corby b3410 和三星 c6712 这些手机上未显示阿拉伯字体 但它可以在诺基亚手机上正常工作 我在用着System font用于显示阿拉伯字体 为什么这些手机不支持 如
  • Latin-1 / UTF-8 编码 php

    我有一个 UTF 8 编码与 Latin 1 混合的数据库 我认为这就是问题所在 这就是字符在数据库中的样子 should be 当我将标题设置为 然后字符就出来了 当我删除标题时 它们会像数据库中一样出现 我希望他们像这样出来 如果可能的
  • Core Haskell 将类型应用于函数意味着什么?

    我为 Core Haskell 编写了一个自定义的漂亮打印机 以便更好地研究 Core 的结构 这台漂亮打印机的要点是 它需要核心模块并在输出中包含数据构造函数 默认情况下Outputable执行好像不行 这是我运行漂亮打印机的模块的代码
  • 如何将多域用户电子邮件添加到 Azure AD

    我们有三个不同的网站 我们希望使用 Azure AD 来实现单点登录 我的问题是如何将可能拥有不同电子邮件地址的用户添加到 Azure AD 通过 API 例如 电子邮件受保护 电子邮件受保护 电子邮件受保护 etc 当我尝试通过 API
  • 如何在 Eclipse 编辑器中打开外部浏览器

    如何以编程方式使用 Eclipse 插件中的打开选项打开 Safari 等外部浏览器 try PlatformUI getWorkbench getBrowserSupport getExternalBrowser openURL new
  • 使用 PHP 创建 Web 服务

    我想用 PHP 创建一个可供不同消费者 网页 Android 设备 iOS 设备 使用的 Web 服务 我来自 Microsoft 背景 因此对如何使用 C 等进行操作很满意 理想情况下 我希望能够提供可以发送 JSON 的 REST 服务
  • 如何使用 React 导航在 mobx 商店中导航?

    我可以用this props navigation从屏幕组件进行导航 我应该如何在 mobx 存储文件中执行类似操作 或者我应该在商店中进行导航吗 我读了无需导航道具即可导航文章 但它似乎只适用于屏幕组件 对吗 有人说用global变量来存
  • 具有选择类的语义 UI 多级下拉列表不会展开

    当我尝试使用下拉菜单时search selection并选择一个子类别 它会展开到自身中 并且下拉列表中会出现一个小滚动条 如果我不添加search selection它似乎运行得很好 JSFiddle https jsfiddle net
  • JavaScript 图像 URL 验证

    我需要验证图像 url 以检查该 url 是否是以下任何扩展名的图像 jpeg jpg gif png 示例 当我们验证此 url 时http www example com asdf jpg它应该给我们真正的价值和像这样的网址http w
  • 有没有办法在热图中保留聚类但减少观察数量?

    我的数据集包含 20 列 90 个观察值 行 我生成了一个非常简洁的热图 它使用 pheatmap 包将我的数据分为两组 虽然它并不完全干净 但树状图的两个簇几乎根据我的条件将我的样本分为两个不同的组 现在我想将这组 90 个观察值减少到大
  • 单引号和双引号 html 属性之间的功能差异是什么?

    Let sEncodedHref代表一个HttpUtility HtmlAttributeEncode 是字符串 生成的 html 之间是否存在功能差异 如下所示 String Format span class blue src 0 sE
  • 从 netcdf 中提取特定经纬度的值

    我正在尝试读入 R 的 netCDF 文件 网络CDFchirps v2 0 1981 days p05 nc是从这里下载的 ftp ftp chg ucsb edu pub org chg products CHIRPS 2 0 glob
  • 反转字符串顺序

    我想反转字符串的顺序 例如 乔 红 红乔 我相信相反的方法对我没有帮助 因为我不想反转每个字符 只是切换单词 首先 您需要定义 单词 的含义 我假设您只需要用空格分隔的字符串 在这种情况下 我们可以这样做 join reversed s s
  • 如何在pygame中使用其他字体?

    我已经下载了一种名为 redline ttf 的字体 我想在 pygame 中使用它 我只想在屏幕上打印文本 我在文件夹 pygame gt lib 中找到了一种名为 freesansbold ttf 的基本字体 我已将下载的字体放在同一个
  • 使用 jQuery 使用值和类根据复选框过滤结果

    首先 这是我现在所拥有的一些东西 链接到 JSFiddle 代码如下 div div div div
  • 订阅确认时出现 Amazon SNS SDK 无效参数异常

    我正在尝试使用以下代码订阅 Android 用户接收推送通知 public static void subscribeToTopic final String topicArn String EndpointArn SubscribeReq
  • 在 rmarkdown::render 之外初始化输出位置

    米科 马蒂拉帮助我找到了一种动态时间戳文件的方法 使用working代码如下 title Untitled author Jane Doe date r Sys Date output word document knit gt funct
  • Meteor Collectionfs插入服务器端

    大家好 我使用 collectionfs gridfs cfs 文件系统 在 collectionfs 文档中 我找到了如何在客户端插入文件 如下所示 Template myForm events change myFileInput fu