Загрузка файлов Meteor
Я вижу, что это было задано здесь раньше, но ничего с Meteor.http
не было. Я по-прежнему понимаю понятия "Метеор", и загрузка файлов полностью ускользает от меня.
Здесь мой вопрос:
Итак, в том, что я считаю правильным методом,
Meteor.http.call("POST", url, [options], [asyncCallback])
что вы положили для url? С отношением javascript клиент/сервер в метеор, похоже, что он действительно не использует URL-адреса.
Если у кого-то есть основной пример загрузки файла в метеор, это будет просто extra awesome.
Ответы
Ответ 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-запросы на стороне сервера.