2

meteor でその場でファイルをアップロードして読み取ろうとしています。ただし、これを行うためのパッケージ/チュートリアルが見つからなかったので、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 

何かご意見は ?

4

1 に答える 1

0

ウィンドウがデフォルト イベントでドロップ イベントを処理しないようにするには、次のことが必要です。

window.addEventListener("drop",function(ev){
  ev = ev || event;
  ev.preventDefault();
},false);
于 2015-07-25T01:55:43.290 に答える