Загружать и читать/записывать файлы в метеоре

Я пытаюсь загрузить и прочитать файл на лету в метеоре. Однако я не нашел никаких пакетов / руководств для этого, поэтому я попытался использовать библиотеку FS, но у меня есть некоторые проблемы с ней.

У меня есть в моем шаблоне и такое событие:

"change .myFileUpload": function(e, tmpl) {
    e.preventDefault();
    var fileInput = tmpl.find('input[type=file]');

    console.log('test');
    // grab a list of the files selected with the file chooser
    // input
    debugger;
    console.log(fileInput);
    var theFile = new FS.File(fileInput);
    console.log(theFile);
    var rose = JSON.parse(Assets.getText(fileInput));
    Meteor.call('readTxtFile',fileInput);
    Meteor.call('readTxtFile',theFile);
}

Метод readTxtFile выглядит так:

    readTxtFile : function(file){
    console.log(file);
    fs.readFile(file, function(err,data){
        if(err){
            throw new Error("Fail read");
        }else{
            console.log(data);
        }
    });

Но когда я загружаю файл, страница перезагружается с файлом, переданным через аргументы, URL-адрес выглядит следующим образом: http://localhost:3000/port?myFileUpload=textfile.txt

Страница перезагружается, когда код выполняет строку http://localhost:3000/port?myFileUpload=textfile.txt

Даже если я установлю FS.debug = true; Я не вижу никакой ошибки ни в клиенте, ни в журнале сервера; кроме первого журнала

console.log(fileInput);
> <input type=​"file" class=​"myFileUpload">​          portTmpl.js:12 

Какие-нибудь мысли ?


person TLR    schedule 24.07.2015    source источник
comment
большинство людей используют пакет collectionfs: github.com/CollectionFS/Meteor-CollectionFS   -  person Christian Fritz    schedule 24.07.2015
comment
Если вы считаете, что CollectionFS слишком сложна, попробуйте следующее: github.com/VeliovGroup/Meteor- Файлы   -  person dr.dimitru    schedule 24.07.2015
comment
Я могу использовать пакет коллекции FS, но не вижу способа прочитать загруженный файл. И я не понимаю, почему я должен использовать коллекцию, если я просто хочу писать и читать файлы?   -  person TLR    schedule 27.07.2015


Ответы (1)


Вам нужно следующее, чтобы окно не обрабатывало событие drop с событием по умолчанию:

window.addEventListener("drop",function(ev){
  ev = ev || event;
  ev.preventDefault();
},false);
person Michel Floyd    schedule 25.07.2015