2017-11-19 6 views
1

Ich versuche Dateiuploads für Meteor mit Methodenaufruf zu implementieren.Hochladen von Dateien auf Meteorserver mit Methodenaufruf

Ich verwende dieses Meteor-Paket: https://atmospherejs.com/ostrio/files.

Ich habe kein Problem auf der Client-Seite (ich kann Datei in einem Base64-Format senden). Auf Serverseite versuche ich, diese Funktion zu implementieren: https://github.com/VeliovGroup/Meteor-Files/blob/master/docs/write.md

, aber ich bekomme diesen Fehler.

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

Hier ist der Code meiner Methode auf dem Server:

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}`); 
     } 
    }); 
    }, 
}); 

Antwort

0

ich diese Syntax verwendet haben:

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

lib Dokumentation Nach zunächst Images mit einer Instanz von FilesCollection ähnlich wie folgt instanziiert benötigen, um:

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'; 
    } 
    } 
}); 

Für weitere Informationen zu den Konstruktor Parameter finden Sie in https://github.com/VeliovGroup/Meteor-Files/wiki/Constructor

+0

Ich habe bereits. –

+0

Ich instanziiere bereits eine Bildersammlung auf dem Server und verwendete sie auf dem Server. Aber es ist nicht mein Anwendungsfall, es auf dem Client zu instanziieren. Ich habe die Lösung für mein Problem gefunden. Ich werde es als Antwort posten. Danke ! –