我一直在检查 Meteor 作为 Web 应用程序的潜在框架,我需要做的一件事是允许我的客户通过应用程序上传文件。我开始检查 Filepicker.io 作为整合此功能的途径,但我无法让拖放字段呈现。它在测试 Rails 应用程序上运行良好,但在我的演示 Meteor 应用程序上,它看起来就像一个空白输入框。
问问题
2828 次
4 回答
4
我通过 wget http://api.filepicker.io/v1/filepicker.js将库导入到我的 /client 文件夹
那么我可以
meteor.startup ->
filepicker.setKey 'lalala'
然后创建小部件
Template.fileUpload.rendered = ->
filepicker.constructWidget document.getElementById('uploadWidget')
于 2012-10-29T15:26:02.497 回答
3
为了方便起见,我发布了一个可以与 Meteorite 一起安装的 Atmosphere 包( github loadpicker )。
文件选择器脚本在调用时动态加载,并且在文件选择器成功回调上设置密钥。从创建的模板或渲染的模板加载脚本是保存的。
安装:
mrt add loadpicker
使用您的个人 filepicker.io 键和回调函数调用脚本以创建拖放区域:
loadPicker(key, cb);
示例集成如下所示:
if (Meteor.isClient) {
Session.set("widgetSet", false);
var key = "xxxxxxxxxxxxxxxxx";
var cb = function () {
filepicker.makeDropPane($('#exampleDropPane')[0], {
dragEnter: function() {
$("#exampleDropPane").html("Drop to upload").css({
'backgroundColor': "#E0E0E0",
'border': "1px solid #000"
});
}
});
};
Template.home.created = function ( ) {
if (!Session.get("widgetSet")) {
loadPicker(key, cb);
}
};
}
HTML
<h1>Drop Pane</h1>
<div id="exampleDropPane">Drop Here!</div>
<div><pre id="localDropResult"></pre></div>
CSS
#exampleDropPane {
text-align: center;
padding: 20px;
background-color: #F6F6F6;
border: 1px dashed #666;
border-radius: 6px;
margin-bottom: 20px;
}
于 2013-05-14T10:08:24.203 回答
1
我现在正在处理同样的问题,但那是因为您需要在模板渲染后渲染文件选择器。现在文件选择器在模板之前运行,所以在模板渲染之后再次运行文件选择器渲染代码。
filepicker.constructWidget(document.getElementById('inputID'));
于 2012-10-22T17:16:15.923 回答
-2
以下代码在咖啡脚本中。
首先,您需要正确设置密钥:
Meteor.startup ->
filepicker.setKey 'YOUR API KEY'
然后,您可以通过使用 API 来设置客户端行为:
'click .upload': (e) ->
filepicker.pickMultiple
extensions: ['.png', '.jpg', '.gif', '.doc', '.xls', '.ppt', '.docx', '.pptx', '.xlsx', '.pdf', '.txt']
container: 'modal'
services: ['COMPUTER']
(fpfiles) =>
#do whatever you want to process the data filepicker provided you after upload was done
Meteor.call 'uploadFiles', fpfiles
于 2012-10-23T05:01:03.733 回答