2016-12-12 3 views
0

Я использую Meteor и React JS. Я также добавил файлы Meteor.Где я могу загрузить загруженный файл в Meteor Files?

https://github.com/VeliovGroup/Meteor-Files

Используя этот код,

this.Images = new FilesCollection({collectionName: 'Images'}); 
export default class Logo extends TrackerReact(React.Component){ 
    constructor(){ 
    ... 
    Meteor.subscribe('files.images.all'); 
    } 
uploadLogo(e){ 
    if (e.currentTarget.files && e.currentTarget.files[0]) { 
     // We upload only one file, in case 
     // there was multiple files selected 
     var file = e.currentTarget.files[0]; 
     if (file) { 
     var uploadInstance = Images.insert({ 
      file: file, 
      streams: 'dynamic', 
      chunkSize: 'dynamic', 
      transport: 'http' 
     }, false); 

     uploadInstance.on('start', function() { 
      //template.currentUpload.set(this); 
     }); 

     uploadInstance.on('end', function(error, fileObj) { 
      if (error) { 
      alert('Error during upload: ' + error.reason); 
      } else { 
       console.log("done"); 
      alert('File "' + fileObj.name + '" successfully uploaded'); 
      } 
     }); 
     uploadInstance.start(); 
     } 

    }else{ 
     console.log("error"); 
    } 
} 
render(){ 
... 
<input type="file" id="fileinput" onChange={this.uploadLogo.bind(this)} /> 
} 

Я могу загрузить файл, но я не вижу каких-либо файлов в моем каталоге. Вот мой publish.js,

this.Images = new Meteor.Files({ 
    debug: true, 
    collectionName: 'Images', 
    allowClientCode: false, // Disallow remove files from Client 
    onBeforeUpload: function (file) { 
    // Allow upload files under 10MB, and only in png/jpg/jpeg formats 
    if (file.size <= 1024*1024*10 && /png|jpg|jpeg/i.test(file.extension)) { 
     return true; 
    } else { 
     return 'Please upload image, with size equal or less than 10MB'; 
    } 
    } 
}); 
Meteor.publish('files.images.all', function() { 
    return Images.find().cursor; 
    }); 

Как я могу отобразить изображение? Как я могу ограничить пользователя загрузкой файлов, которые являются только изображениями?

Для меня их API-документы не богаты. Я не могу понять, что они говорят в своих документах.

ответ

1

По умолчанию загруженные файлы хранятся в файловой системе. Ознакомьтесь с часто задаваемыми вопросами:

Где хранятся файлы по умолчанию?: по умолчанию, если config.storagePath не передается в конструкторе это равняется активов/приложений/загрузки и относительно выполнения сценария:

  • На стадии разработки: yourDevAppDir/.meteor/местные/сборки/программы/сервер

Примечание: Все файлы будут удалены, как только ваше приложение перестраивает или запустить Метеор сброса. Чтобы сохранить постоянное хранилище во время разработки, используйте абсолютный путь вне вашей папки проекта, например./каталог данных.

  • О продукции: yourProdAppDir/программы/сервер

Таким образом, вы должны установить местоположение с config.storagePath

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