上传
允许用户通过文件输入表单元素或占位符区域上传文件。
用法
此 JavaScript 组件利用最新的 XMLHttpRequest Level 2 规范,并提供通过 ajax 上传文件的能力,包括跟踪上传进度。该组件提供两种上传文件的方式:select
和 drop
。 虽然 select
请求只能应用于 <input type="file">
元素,但您基本上可以将任何元素与 drop
一起使用,这使您可以简单地将桌面上的文件拖放到指定的元素中进行上传。请注意,此组件不处理服务器上的文件上传。
上传组件始终需要根据您的要求单独实现。在我们的示例中,我们使用了 占位符 和 表单文件 组件,同时应用了 drop
和 select
请求。 此外,我们使用了 进度条组件 来展示上传进度。
示例
将二进制文件拖放到此处,或者选择一个。
标记
<div id="upload-drop" class="uk-placeholder">
Info text... <a class="uk-form-file">Select a file<input id="upload-select" type="file"></a>.
</div>
<div id="progressbar" class="uk-progress uk-hidden">
<div class="uk-progress-bar" style="width: 0%;">...</div>
</div>
JavaScript
要创建 select
和 drop
上传侦听器,您需要使用目标元素和选项实例化每个上传类,这些选项定义回调和有用的设置。
<script>
$(function(){
var progressbar = $("#progressbar"),
bar = progressbar.find('.uk-progress-bar'),
settings = {
action: '/', // upload url
allow : '*.(jpg|jpeg|gif|png)', // allow only images
loadstart: function() {
bar.css("width", "0%").text("0%");
progressbar.removeClass("uk-hidden");
},
progress: function(percent) {
percent = Math.ceil(percent);
bar.css("width", percent+"%").text(percent+"%");
},
allcomplete: function(response) {
bar.css("width", "100%").text("100%");
setTimeout(function(){
progressbar.addClass("uk-hidden");
}, 250);
alert("Upload Completed")
}
};
var select = UIkit.uploadSelect($("#upload-select"), settings),
drop = UIkit.uploadDrop($("#upload-drop"), settings);
});
</script>
JavaScript 选项
选项 | 可能的值 | 默认值 | 描述 |
---|---|---|---|
method |
string | POST | 用于上传的 HTTP 方法 |
action |
string | '' | 上传的目标 URL |
single |
boolean | true | 逐个发送每个文件 |
param |
string | files[] | Post 查询名称 |
params |
JSON 对象 | {} | 其他请求参数 |
headers |
JSON 对象 | {} | 其他请求头 |
allow |
string | *.* | 文件过滤器 |
filelimit |
integer | false | 限制要上传的文件数量 |
type |
(text | json) | text | 服务器的响应类型 |
回调事件
名称 | 参数 |
---|---|
before |
settings, files |
beforeAll |
files |
beforeSend |
xhr |
progress |
percent |
complete |
response, xhr |
allcomplete |
response, xhr |
notallowed |
file, settings |
loadstart |
event |
load |
event |
loadend |
event |
error |
event |
abort |
event |
readystatechange |
event |