2016-11-15 12 views
0

私が反応し、ドロップゾーンを使用して流星コレクションにアップロード画像をしようとしている:meteor add jalik:ufsmeteor add jalik:ufs-gridfsアップロード流星でファイルして反応-ドロップゾーンを

imports/api/images

import { Meteor } from 'meteor/meteor'; 
import { Mongo } from 'meteor/mongo'; 
import { UploadFS } from 'meteor/jalik:ufs'; 

export const Images = new Mongo.Collection('images'); 
export const Thumbs = new Mongo.Collection('thumbs'); 

if(Meteor.isServer) { 
    Meteor.publish('thumbs', function(id) { 
     return Thumbs.find({ 
      originalStore: 'images', 
      originalId: { 
       $in: ids 
      } 
     }); 
    }) 

    Meteor.publish('images', function() { 
     return Images.find({}); 
    }) 
} 

function loggedIn(userId) { 
    return !!userId; 
} 

export const ThumbsStore = new UploadFS.store.GridFS({ 
    collection: Thumbs, 
    name: 'thumbs', 
    permissions: new UploadFS.StorePermissions({ 
    insert: loggedIn, 
    update: loggedIn, 
    remove: loggedIn 
    }), 
    transformWrite(from, to, fileId, file) { 
    // Resize to 32x32 
    const gm = require('gm'); 

    gm(from, file.name) 
     .resize(32, 32) 
     .gravity('Center') 
     .extent(32, 32) 
     .quality(75) 
     .stream() 
     .pipe(to); 
    } 
}); 

export const ImagesStore = new UploadFS.store.GridFS({ 
    collection: Images, 
    name: 'images', 
    permissions: new UploadFS.StorePermissions({ 
     insert: loggedIn, 
     update: loggedIn, 
     remove: loggedIn 
    }), 
    filter: new UploadFS.Filter({ 
     contentTypes: ['image/*'] 
    }), 
    copyTo: [ 
     ThumbsStore 
    ] 
}); 

Meteor.methods({ 
    upload: function(file) { 
     const photo = { 
      name: file.name, 
      type: file.type, 
      size: file.size 
     }; 

     const upload = new UploadFS.Uploader({ 
      data: file, 
      file: photo, 
      store: ImagesStore, 
      onError:() => { 
       console.log('error'); 
      }, 
      onComplete: console.log('Completed'), 
     }); 

     upload.start(); 
    } 
}) 

そして中を:使用して

流星パッケージレスドロップゾーンを使用している私のコンポーネント:

onDrop(file) { 
     UploadFS.selectFile(() => { 
      Meteor.call('upload', file) 
     }) 
    } 

しかし、ファイルをドロップしようとすると、何も表示されず、mongoコマンドをチェックした後も、イメージとサムコレクションはサーバー上のmain.jsファイルにインポートされているとは思えません。作成した。

答えて

1

onDropは、1つのファイルではなく、ファイルのリストを返します。

関連する問題