I insert images into FS.Collection, based on this example by Ethaan - https://github.com/Ethaan/simple-uploadFS/. But I need to upload 2 input values and 2 select values connected with image. I thought inserting them as a metadata, would be the best solution, because it works for storing Meteor.userId(). How do I store also those values ?
Template.profile.events({
'change #exampleInput':function(){
var file = $('#exampleInput').get(0).files[0] //Some jQuery to get the value.
fsFile = new FS.File(file);
fsFile.metadata = {
coolText:"coolText",
ownerId:Meteor.userId(),
title:$(event.target).find('[name=bookTitle]').val(),
format:$(event.target).find('[name=bookFormat]').val(),
category:$(event.target).find('[name=bookCategory]').val(),
description:$(event.target).find('[name=bookDescription]').val()
} //FS.File support metadata.
BookImage.insert(fsFile,function(err,result){
if(!err){
console.log(result) //you should get an id here since the full object take more less 10 sec to upload
}
})
}
});
<template name="profile">
<form class="form">
<ul class="list-group-item" id="submit">
<li><p>Book Title :</p><input autofocus="autofocus" type="text" id="bookTitle" name="bookTitle"></li>
<div class="image">
<li><p>Book Cover :</p><input type="file" id="exampleInput"> </li>
</div>
<li><p>Book Format :</p><select id="bookFormat" name="bookFormat">
<option value="ebook">Ebook</option>
<option value="audiobook">AudioBook</option>
<option value="pdf">PDF</option>
</select></li>
<li><p>Book Category :</p><select id="bookCategory" name="bookCategory">
<option value="tech">Tech</option>
<option value="business">Business</option>
<option value="design">Design</option>
<option value="scifi">Sci-fi</option>
<option value="biography">Biography</option>
<option value="science">Science</option>
</select></li>
<li><p>Book Description :</p><textarea id="bookDescription" name="bookDescription"></textarea></li>
</ul>
</form>
</template>