2015-01-27 6 views
3

Я новичок в Meteor. Я пытаюсь найти способ для загрузки файлов. Я следил за этим тутом, используя пошаговые команды fs: http://meteortuts.com/category/addanuploader Однако это не работает. Ничего не произошло! Что-то не хватает? Я пробовал его локально и развертывал его на apps.meteor.com. «uploadexample.meteor.com», есть ошибка, потому что сайт не распознает символ «~». Локально отображается страница, но ничего не загружается. Есть идеи? Благодарим Вас за ваши ответы,Метеор: загрузка файлов в папку

Michelk Вот мой код:

HTML: 

    <head> 
    <title>uploadexample</title> 
</head> 

<body> 
    <h1>Welcome to Meteor!</h1> 
    <div class="container"> 
    {{> hello}} 
    </div> 

</body> 

<template name="hello"> 
    <div class="panel panel-default push-down"> 
    <div class="panel-heading"> 
     <h3 class="panel-title">Uploads Section</h3> 
    </div> 
    <div class="panel-body"> 
     <p> 
     Add Files 
     <span class="btn btn-default btn-file"> 
      <input multiple type="file" name="file" class="file fileInput"/> 
     </span> 
     </p> 
    </div> 
    <div class="panel-footer"> 
     <div class="col-md-9"> 
      <table class="table table-hover table-striped table-bordered"> 
      <thead> 
      <th>Name</th> 
      <th>Download</th> 
      </thead> 
      <tbody> 
       {{#each uploads}} 
       <tr> 
       <td>{{name}}</td> 
       <td><a href="{{url download=true}}" type="button" class="btn btn-default"> 
        Download 
       </a></td> 
       </tr> 
       {{/each}} 
      </tbody> 
      </table> 
     </div> 
    </div> 
    </div> 
</template> 

Файл JS:

Uploads = new FS.Collection('uploads',{ 
    stores:[new FS.Store.FileSystem('uploads',{path:'~/projectUploads'})] 
}); 
if (Meteor.isClient) { 
    // counter starts at 0 
    Session.setDefault("counter", 0); 

    Template.hello.helpers({ 
    counter: function() { 
     return Session.get("counter"); 
    }, 
    uploads:function(){ 
     return Uploads.find(); 
    } 
    }); 

    Template.hello.events({ 
    'change .fileInput':function(event,tmpl){ 
     FS.Utility.eachFile(event,function(file){ 
     var fileObj = new FS.File(file); 
     Uploads.insert(fileObj),function(err){ 
      console.log(err); 
     } 
     }) 
    } 
    }); 
} 

if (Meteor.isServer) { 
    Meteor.startup(function() { 
    // code to run on server at startup 
    }); 
} 

Пакет список метеор:

...tuto meteor/upload fs/uploadexample$ meteor list 
bootstrap    1.0.1 Front-end framework from Twitter 
cfs:filesystem   0.1.1 Filesystem storage adapter for CollectionFS 
cfs:standard-packages 0.5.3 Filesystem for Meteor, collectionFS 
meteor-platform  1.2.1 Include a standard set of Meteor packages in your app 
twbs:bootstrap   3.3.2 Bootstrap (official): the most popular HTML/CSS/JS framework for responsive, mobile first projects 
+0

Какая ошибка вы попали на консоль? что-то вроде «Access Denied?», просто для того, чтобы убедиться, что запущен «Uploads.find»(). fetch() 'on' console', а также измените u в нижнем регистре на U на 'FS.Collection и FS.Store.' – Ethaan

+0

право - я вижу шаг за шагом, у вас есть вы удаляете автообновление, но на самом деле никогда не делаете паб/sub нигде. Если вы просто пытаетесь получить что-то, чтобы играть, попробуйте повторно добавить как «autopublish», так и «небезопасные» пакеты. В противном случае вам понадобится паб/суб в Uploads, и вам понадобятся правила allow/deny, вероятно, для коллекции Uploads. –

+0

Я добавил небезопасный и автоматически опубликованный. Локально создается коллекция FS, но файлы не загружаются в папку «~/projectUploads», есть только ссылка на названия файлов. – michelk

ответ

2

Я вы искали то же самое, что и ваше. Когда ваше приложение работает локально с meteor, оно действительно делает ~/projectUploads в вашей локальной домашней папке. Но когда вы хотите, чтобы ваше приложение работало на метеорном хостинге meteor deploy example.meteor.com, вы должны отредактировать свой путь до ./projectUploads. Все должно работать нормально. скрещенные пальцы

Смежные вопросы