尝试将图像上传添加到meteor中的表单帖子中

时间:2014-05-10 19:29:23

标签: javascript upload meteor

我正在尝试将图像上传到meteor中的公共文件夹

我正在使用this gist

中的代码

这是代码,它给我在客户端文件夹中的问题,但我收到一个未定义的错误

JS

Template.postSubmit.events({
  'change input': function(ev) {
    _.each(ev.srcElement.files, function(file) {
      Meteor.saveFile(file, file.name);
    });
  }
});

TEMPLATE

<template name="postSubmit">
 <form>

    <input type="file" />

    <div>
        <div>
            <input type="submit" value="Submit" />
        </div>
    </div>

</template>

ERROR

Uncaught TypeError: Cannot read property 'files' of undefined upload.js?574ce0cd76371392e26467130b3b109e7fc0d6b5:3
Template.postSubmit.events.change input upload.js?574ce0cd76371392e26467130b3b109e7fc0d6b5:3
(anonymous function) base.js:317
_assign.nonreactive deps.js:363
wrappedHandler base.js:308
(anonymous function) domrange.js:875
jQuery.event.dispatch jquery.js:4624
elemData.handle

还有更多的代码,但我甚至无法迈出第一步,所以我想知道这里有什么感谢。

2 个答案:

答案 0 :(得分:1)

在客户端saveFile函数中更改此部分:

 fileReader.onload = function(file) {
   Meteor.call('saveFile', file.srcElement.result, name, path, encoding, callback);
 }

到此:

 fileReader.onload = function(file) {
   Meteor.call('saveFile', file.target.result, name, path, encoding, callback);
 }

基本上你需要使用file。 target .result而不是file。 srcElement .result

答案 1 :(得分:0)

@Aram是对的,但您还需要在Template事件中更改它。 select nextval('test_sequence');适用于IE,而srcElement适用于所有其他浏览器