【问题标题】:File upload with Meteor + React failing silently使用 Meteor + React 上传文件静默失败
【发布时间】:2017-12-06 08:28:52
【问题描述】:

我正在使用 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 的表,因此没有保存任何内容。我的文件系统中也没有添加任何文件或上传文件夹。

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

【问题讨论】:

    标签: reactjs meteor


    【解决方案1】:

    如果您想定义一个托管集合,您需要在您的客户端和服务器代码中进行。 cfs 可能有点不明显,因为它没有采用普通集合定义的形式,而是在后台进行。

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

    【讨论】:

    • 对于其他找到此线程的人,我仍然发现 cfs:filesystem 真的很难使用。我将在实际启动时使用 Slingshot 包(我目前只是在本地开发)。
    • 我很久以前就用弹弓代替了cfs,更好的解决方案。
    【解决方案2】:

    cfs:standard-packages, cfs:filesystem 已弃用,请改用MeteorFiles。那里的文档中有一个部分用于反应检查。

    【讨论】:

      猜你喜欢
      • 2015-10-03
      • 1970-01-01
      • 2016-11-29
      • 2012-06-05
      • 1970-01-01
      • 1970-01-01
      • 2019-01-31
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多