上传

允许用户通过文件输入表单元素或占位符区域上传文件。

用法

此 JavaScript 组件利用最新的 XMLHttpRequest Level 2 规范,并提供通过 ajax 上传文件的能力,包括跟踪上传进度。该组件提供两种上传文件的方式:selectdrop。 虽然 select 请求只能应用于 <input type="file"> 元素,但您基本上可以将任何元素与 drop 一起使用,这使您可以简单地将桌面上的文件拖放到指定的元素中进行上传。请注意,此组件不处理服务器上的文件上传。

上传组件始终需要根据您的要求单独实现。在我们的示例中,我们使用了 占位符表单文件 组件,同时应用了 dropselect 请求。 此外,我们使用了 进度条组件 来展示上传进度。

示例

将二进制文件拖放到此处,或者选择一个
0%

标记

<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

要创建 selectdrop 上传侦听器,您需要使用目标元素和选项实例化每个上传类,这些选项定义回调和有用的设置。

<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