Я работаю над проектом, используя meteor и collectionfs.collectionfs generate загрузить url
Я загружаю файлы в collectionfs и устанавливаю файл-манипулятор на место. Я могу использовать {{cfsFileUrl "defaultFilehandler"}}
Handlebar Helper для отображения URL-адреса, где изображение сохраняется, но я не могу скачать изображения с этого URL-адреса.
Когда я копирую его в браузере:
localhost:3000/cfs/contacts/Nj3WzrBKhqd9Mc9NP_defaultHandler.png
метеорные маршрутов меня на страницу метеора (как если бы я был прописан Localhost: 3000)
В конце концов, я хотел бы достичь две вещи:
первый
дисплей изображения с помощью тега HTML:
<img src=??? alt="your image" />
2nd Я хотел бы убедиться, что у пользователя есть возможность просмотра этого изображения.
Наличие «загрузочного-url» не является достаточной защитой для меня.
Для того, чтобы добраться до точки я пошел через обычный учебник от collectionFS:
клиент JS
ContactsFS = new CollectionFS('contacts', { autopublish: false });
Deps.autorun(function() {
Meteor.subscribe('myContactsFiles');
});
Template.queueControl.events({
'change .fileUploader': function (e) {
var files = e.target.files;
for (var i = 0, f; f = files[i]; i++) {
ContactsFS.storeFile(f);
}
}
});
сервер JS
ContactsFS = new CollectionFS('contacts', { autopublish: false });
ContactsFS.allow({
insert: function(userId, file) {
console.log('user'+userId+"file"+JSON.stringify(file));
console.log("WILL SAVE:"+userId && file.owner === userId);
return userId && file.owner === userId;
},
update: function(userId, files, fields, modifier) {
return _.all(files, function (file) {
return (userId == file.owner);
}); //EO iterate through files
},
remove: function(userId, files) { return false; }
});
Meteor.publish('myContactsFiles', function() {
if (this.userId) {
return ContactsFS.find({ owner: this.userId }, { limit: 30 });
}
});
ContactsFS.fileHandlers({
default1: function(options) { // Options contains blob and fileRecord — same is expected in return if should be saved on filesytem, can be modified
return { blob: options.blob, fileRecord: options.fileRecord }; // if no blob then save result in fileHandle (added createdAt)
}});
Привет, у меня возникла проблема, когда я попытался отобразить изображение. Он показал сломанный значок изображения с этой ошибкой: «Ресурс интерпретируется как изображение, но передается с текстом типа MIME/html:». Вы столкнулись с такой же проблемой? – Junhao