Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/meteor/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用meteor将PDF或图像文件保存到收藏中?_Javascript_Meteor - Fatal编程技术网

Javascript 如何使用meteor将PDF或图像文件保存到收藏中?

Javascript 如何使用meteor将PDF或图像文件保存到收藏中?,javascript,meteor,Javascript,Meteor,如何使用meteor将PDF或图像文件保存到集合中 我试过了,但它只是保存了pdf链接或图片 我尝试了下面的代码,但它非常适合文件集合二进制数字。 请我想做的是插入到集合中的文件,而不是文件的链接 'change input' : function(event,template){ var file = event.target.files; if (!file) return; var reader = new FileReader(); reader.

如何使用meteor将PDF或图像文件保存到集合中 我试过了,但它只是保存了pdf链接或图片

我尝试了下面的代码,但它非常适合文件集合二进制数字。 请我想做的是插入到集合中的文件,而不是文件的链接

'change input' : function(event,template){ 
    var file = event.target.files; 
    if (!file) return;

    var reader = new FileReader();

    reader.onload = function(event){          
      var buffer = new Uint8Array(reader.result) 
      Meteor.call('saveFile', buffer);
    }

    reader.readAsArrayBuffer(file);
}

/*** server.js ***/ 

Files = new Mongo.Collection('files');

Meteor.methods({
    'saveFile': function(buffer){
        Files.insert({data:buffer})         
    }   
});

如果您使用的是meteor版本的最新版本,那么它可能不是您的最佳解决方案,因为该项目曾经是一个伟大的文件存储解决方案。现在,似乎是处理PDF/图像存储的更好选择。您可以将CollectionFS与dropbox或Amazon S3存储一起使用,如下所示:

集合文件

var dropboxStore = new FS.Store.Dropbox("files", {
    key: //your key here,
    secret: //Your secret here,
    token: // Access tokenhere. Don’t share your access token with anyone.
    folder: FolderName, //optional, which folder (key prefix) to use 
    // The rest are generic store options supported by all storage adapters
    // transformWrite: myTransformWriteFunction, //optional
    // transformRead: myTransformReadFunction, //optional
    // maxTries: 1 //optional, default 5
});

Images = new FS.Collection("images", {
    // stores: [new FS.Store.FileSystem("images", {path:"../../../../../.uploads"})]
    stores: [dropboxStore]
});

Images.allow({
    insert: function () {
        return true;
    },
    update: function () {
        return true;
    },
    download: function () {
        return true;
    }
});
客户端:关于文件更改事件

FS.Utility.eachFile(event, function (file) {
            var imgfile = event.target.files[0];
            var img = new Image();
            img.src = window.URL.createObjectURL(imgfile);
            img.onload = function () {
                    Images.insert(file, function (err, fileObj) {
                        free_spinz_symbol.set(fileObj);
                    });
            };
        });