0

CollectionFS パッケージを使用して meteor アプリケーションで画像をアップロードしていますが、を使用してファイルを検証できませんfilters。これまでのところ、任意の拡張子と任意のサイズの任意のファイルをアップロードできます。

テンプレート

<template name="uploadPicture">
    <label class="ui primary left labeled icon button" for="file" id="upload-div">
        <i class="photo icon"></i>
        Update Picture
        <input type="file" id="file" class="myFileInput"/>
    </label>
</template>

client/upload_picture.js

Template.uploadPicture.events({
    'change .myFileInput': function (event) {
        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
            });
        });
    }
});

lib/collection/images.js は

Images = new FS.Collection("images", {
    stores: [new FS.Store.FileSystem("images")],
    filters: {
        maxSize: 1048576, // in bytes
        allow: {
            contentTypes: ['image/*'],
            extensions: ['png','jpg','jpeg','gif']
        },
        onInvalid: function (message) {
            if (Meteor.isClient) {
                alert(message);
            } else {
                console.log(message);
            }
        }
    }
});

Images.allow({
    'insert': function () {
        // add custom authentication code here
        return true;
    }
});
4

1 に答える 1