- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
大家好,我使用 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 文件中定义允许和拒绝功能。如果删除不安全的包,所有插入/更新/删除都必须通过允许/拒绝功能。如果命令通过允许回调,它可以插入到您的集合中(如果没有拒绝函数使其无效)
好吧,在这个例子中,如果有用户并且图像的元数据用户是用户本身,我只想插入图像。您必须自己设置元数据用户。对于测试,只需在每个 allow 函数中返回 true,如 Pent 的示例所示。查看 meteor 文档以阅读有关允许/拒绝的更多信息 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) {
});
});
}
});
这应该是您需要的一切。
关于javascript - Meteor collectionfs 插入服务器端,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23044259/
我正在使用 Meteor CollectionFS。目前我的文件上传是在客户端上执行的。我想在服务器上执行文件上传,以便其他平台(如 andriod 或 ios)可以使用我的文件上传服务。 目前这是我
我将 Meteor 和 CollectionFS 与 S3 结合使用,使用不同的存储来提供同一集合中的缩略图和全尺寸图像。我想在“dblclick”事件发生时下载全尺寸图像。 var src = fi
我正在开发我的第一个 meteor 应用程序,并且刚刚实现了使用 CollectionFS 和 gridfs 上传图像。我可以使用成功查看我上传的图像但我需要从 Meteor 的客户端访问它。我正在尝
使用 Meteor.js 和 CollectionFS 将图像上传到 AWS S3。通过文件输入字段选择要上传的图像。 'change .upload-input': function() {
您知道如何展示特定商店吗?我有两家商店。 我正在使用包 cfs-ejson 通过 imageObj 字段将图像存储在我收藏的字段中 var imageStore = new FS.Store.S3("
我有一个简单的门票应用程序。当我创建新票证时,我可以添加与此票证相关的附件。下载按钮不起作用。文件元数据已正确插入到集合中,我看到了。也许,这就是原因:资源不在上传文件夹中。我使用 cfs:files
我正在使用CollectionFS从我的应用程序存储和下载文件 Download 我想在下载文件时执行服务器端函数(不使用 jQuery,因为它不太可信并且可以被绕过)。 我想知道是否有任何未记录的函
大家好,我使用 collectionfs + gridfs + cfs 文件系统,在 collectionfs 文档中,我找到了如何像这样在客户端插入文件: Template.myForm.event
我正在尝试使用全局模板助手获取上传图像的 URL。到目前为止,我尝试执行 isPrimary.url() 但我只得到 null,否则 isPrimary.url 返回一个函数。知道如何处理这个问题吗?
我一直在使用 CollectionFS 和 GraphicsMagick 来裁剪图像并将其存储在 S3 中。我意识到这些图像对于移动设备来说太大了,现在我想存储缩小的版本。这是我尝试过的。 image
我正在使用 collectionFS 上传图片,问题是我希望我的用户能够只上传一张图片然后更改它(上传一张新图片)。我有检查图像是否已经上传的部分,但问题是我无法更改数据库中的图像,这是我必须插入新图
我正在使用以下 meteor 包上传图片 https://github.com/CollectionFS/Meteor-CollectionFS 我正在使用的代码 Uploads =new FS.Co
我使用自动表单将用户上传的个人资料图片保存到“图像”集合中。但是我不知道如何调用将特定图片加载到模板上。以下不显示模板上的图像。但是,如果我将 Images.find({'doc.metadata.o
我正在创建一个允许上传和显示图像的应用程序。用户可以上传图片,然后所有图片都显示在一个页面上。最大的问题是所有图片都需要以所有者的名义显示。 我正在使用 CollectionFS 上传和存储文件,这是
我正在使用 CollectionFS 来存储从我的 meteor 应用程序上传的文件。我正在使用 cfs-filesystem 包来使用本地文件系统保存我的文件。 现在,当我上传文件时,它会保存到 ~
我正在尝试使用 this 测试上传功能指南,唯一的异常(exception)是使用 cfs-s3包裹。这是非常基本的简单代码,但我在客户端控制台上收到错误 - 错误:访问被拒绝。不允许在方法“插入”的
大家晚上好。 我一直在努力使用所见即所得编辑器和 collectionFS 在 Meteor 中上传文件。我一直在尝试使用 Summernote,但我不介意使用 Redactor 或 Froala。
我在 Angular Controller 中检索 GridFS(通过 CollectionFS)中存储的图像时遇到问题。我订阅 meteor 图像: $scope.images = $meteor.
大家好,我是 Meteor 框架和 Web 开发的菜鸟 最近想用Meteorite中的CollectionFS包实现上传下载页面 所以我阅读了文档 https://github.com/Collect
我正在使用 CollectionFS 来管理图像。此外,我正在使用 graphicsmagick gm() 来处理图像。 现在我想裁剪已保存的图像。因此,在单击事件上调用服务器方法,该方法执行 cro
我是一名优秀的程序员,十分优秀!