我正在使用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的表,因此没有保存任何内容。我也没有将任何文件或上传文件夹添加到我的文件系统中。
我启用了自动发布和不安全的软件包。
答案 0 :(得分:0)
如果要定义托管集合,则需要在两者中执行客户端和服务器代码。 cfs
可能有点不明显,因为它不采用正常集合定义的形式,而是在引擎盖下进行。
您需要将images.js
导入服务器启动代码。
答案 1 :(得分:0)
cfs:standard-packages,cfs:filesystem不建议使用MeteorFiles。文档中有一节用于反应检查。