Подтвердить что ты не робот

Загрузка файлов Meteor

Я вижу, что это было задано здесь раньше, но ничего с Meteor.http не было. Я по-прежнему понимаю понятия "Метеор", и загрузка файлов полностью ускользает от меня.

Здесь мой вопрос:
Итак, в том, что я считаю правильным методом,
Meteor.http.call("POST", url, [options], [asyncCallback])
что вы положили для url? С отношением javascript клиент/сервер в метеор, похоже, что он действительно не использует URL-адреса.

Если у кого-то есть основной пример загрузки файла в метеор, это будет просто extra awesome.

4b9b3361

Ответ 1

Взгляните на файлpicker.io. Они обрабатывают загрузку, сохраняют ее в вашем S3 и возвращают вам URL-адрес, который вы можете сбросить в свой db.

  • Запустите файл-пиктограмму script в папку клиента.

    wget https://api.filepicker.io/v0/filepicker.js
    
  • Вставить тег ввода filepicker

    <input type="filepicker" id="attachment">
    
  • В процессе запуска инициализируйте его:

    Meteor.startup( function() {
        filepicker.setKey("YOUR FILEPICKER API KEY");
        filepicker.constructWidget(document.getElementById('attachment'));
    });
    
  • Прикрепите обработчик событий

    Template.templateNameHere.events({
        'change #attachment': function(evt){
            console.log(evt.files);
        }
    });
    

(Я отправил на Как можно обрабатывать загрузку файла с помощью Meteor? Извините, я здесь новичок. Кошерно ли копировать тот же ответ дважды? Любой, кто лучше знает, может отредактировать это бесплатно.)

Ответ 2

хорошо играл немного с метеор. Создал коллекциюFS смесь метеорных и gridFS (может быть совместима). Протестируйте его здесь: http://collectionfs.meteor.com/ Он поддерживает выход из больших файлов, нескольких файлов, пользователей и т.д. Я тестировал 50Mb, кажется, нормально, если соединение потеряно или браузер умирает, пользователь может возобновить загрузку. Также должно быть возможно, чтобы несколько пользователей загружались в один и тот же файл - не вышли за него, но это возможно. Учетные записи, публикация и т.д. Аналогичны коллекциям - тест находится в автоматическом режиме, хотя доступны только метаданные - куски данных подаются в фоновом режиме через капли.

Я попытаюсь получить его на github,

Ответ 3

Оформить заказ, как выполнить это с помощью Meteor.Method на сервере и FileReader api на клиенте

https://gist.github.com/dariocravero/3922137

После нескольких поисков, это выглядит для меня самым легким (и на данный момент способом метеорного стиля) для обработки загрузки файла без дополнительных зависимостей.

Ответ 4

Так как meteor включает JQuery по умолчанию, вы можете использовать плагин JQuery для этого, я полагаю, что-то вроде: https://github.com/blueimp/jQuery-File-Upload/wiki/Options может выполнять трюк для вас и поддерживает как GET, так и PUT.

В противном случае было бы болью в заднице заставить его работать, но не невозможно, так как вы можете получить доступ к PUT в метеор.

Если вы предпочитаете более чистое решение JS, возможно, вы можете посмотреть: http://igstan.ro/posts/2009-01-11-ajax-file-upload-with-pure-javascript.html

И адаптируйте его.

Нет готовой поддержки для загрузки файлов, поэтому делитесь тем, что вы придумали, мне было бы очень интересно!

Ответ 5

Альтернативно (если вы не хотите использовать стороннее решение, например filepicker), вы можете использовать пакет meteor router.

Это обрабатывает HTTP-запросы на стороне сервера.