2017-11-19 5 views
1

メソッド呼び出しを使用して流星のファイルアップロードを実装しようとしています。メソッド呼び出しを使用して流星のサーバーにファイルをアップロード

私はこの流星パッケージを使用しています:https://atmospherejs.com/ostrio/files

クライアント側で問題はありません(私はbase64でエンコードされた形式でファイルを送信できます)。サーバー側でこの機能を実装しようとしています:https://github.com/VeliovGroup/Meteor-Files/blob/master/docs/write.md

このエラーが発生しています。ここで

Error during upload: TypeError: Images.write is not a function 

は、サーバー上の私のメソッドのコードです:

export const insertImage = new ValidatedMethod({ 
    name: 'images.insert', 
    validate: new SimpleSchema({ 
    file: { type: String }, 
    }).validator(), 
    run({ file }) { 
    Images.write(file, { 
     fileName: 'sample.png', 
     type: 'image/png', 
    }, function (error, fileRef) { 
     if (error) { 
     throw error; 
     } else { 
     console.log(`${fileRef.name} is successfully saved to FS. _id: ${fileRef._id}`); 
     } 
    }); 
    }, 
}); 

答えて

0

を参照してくださいの詳細については、私はこの構文を使用しています

Meteor.call('images.insert', { 
    file: image 
    }, (err, res) => { 
    if (err) { 
    console.log(`Error during upload: ${err}`); 
    } else { 
    console.log(`Upload successfully!`); 
    } 
}); 
0

あなたが最初に以下のように似たFilesCollection、のインスタンスでImagesをインスタンス化する必要がありますlibのドキュメントによると:

https://github.com/VeliovGroup/Meteor-Files#api-overview-full-api

import { FilesCollection } from 'meteor/ostrio:files'; 

const Images = new FilesCollection({ 
    collectionName: 'Images', 
    allowClientCode: false, // Disallow remove files from Client 
    onBeforeUpload(file) { 
    // Allow upload files under 10MB, and only in png/jpg/jpeg formats 
    if (file.size <= 10485760 && /png|jpg|jpeg/i.test(file.extension)) { 
     return true; 
    } else { 
     return 'Please upload image, with size equal or less than 10MB'; 
    } 
    } 
}); 

コンストラクタのパラメータはhttps://github.com/VeliovGroup/Meteor-Files/wiki/Constructor

+0

私はすでにそれをしました。 –

+0

私は既にImagesコレクションをサーバー上でインスタンス化し、サーバー上で使用しました。しかし、それをクライアント上でインスタンス化するのは私のユースケースではありません。私は私の問題の解決策を見つけました。私は答えとして投稿します。ありがとうございました ! –

関連する問題