使用Meteor + React上传文件失败

时间:2017-12-06 08:28:53

标签: reactjs meteor

我正在使用React和Meteor。我需要允许用户上传个人资料图片。

我安装了这些软件包:

cfs:standard-packages
cfs:filesystem

我在images.js中定义了我的收藏:

export const Images = new FS.Collection('images', {
  stores: [new FS.Store.FileSystem('images', { path: '~/uploads' })],
});

此文件未导入服务器JavaScript。

它被导入我的React组件(下面的代码)。我的console.log会记录该文件,但不会显示任何错误。我也没有看到Meteor的终端有任何错误。

import { Images } from '../../../api/images';

  const imgFormSubmit = e => {
    e.preventDefault();

    const file = e.target.profile.files[0];
    console.log(file);

    Images.insert(file, function(err, fileObj) {
      //If !err, we have inserted new doc with ID fileObj._id, and
      //kicked off the data upload using HTTP
    });
  };

然而,当我查看MongoDB时,没有任何名为images的表,因此没有保存任何内容。我也没有将任何文件或上传文件夹添加到我的文件系统中。

我启用了自动发布和不安全的软件包。

2 个答案:

答案 0 :(得分:0)

如果要定义托管集合,则需要在两者中执行客户端和服务器代码。 cfs可能有点不明显,因为它不采用正常集合定义的形式,而是在引擎盖下进行。

您需要将images.js导入服务器启动代码。

答案 1 :(得分:0)

cfs:standard-packages,cfs:filesystem不建议使用MeteorFiles。文档中有一节用于反应检查。