简单js fileUpload控件(单例)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了简单js fileUpload控件(单例)相关的知识,希望对你有一定的参考价值。

single_file_upload.js

var YsUIWidgets=YsUIWidgets||{};
YsUIWidgets.uploadFile = (function($){
    var container  = null;
    var changeCallback = function(){};
    var acceptTypes = ["jpg","png"];// 接受的上传文件类型

    var renderhtml = "<input type=‘file‘ name=‘single-file-upload‘ style=‘display:none;‘/>";

    // 添加隐藏的
    function renderInputFile(){
        // 生成dialog唯一标识
        container = $(renderHtml).appendTo("html"); // 添加到文档中去
        return container;
    }

    function bindEventHandlers(){
        $(container).change(function(e){
            e.preventDefault();
            e.stopPropagation();
            var file = e.target.files[0];
            if(!validateFileType(file,acceptTypes)){
                alert("文件类型不正确!");
                return;
            }
            changeCallback(file);
            // 清除value
            $(this).val("");
        });
    }

    // 验证文件类型
    function validateFileType(file,acceptTypes){console.log("valid");
        var name = file.name;
        var fileSuffix = name.substr(name.lastIndexOf(".")+1);
        for(var i=0;i<acceptTypes.length;i++){
            var acceptType = acceptTypes[i];
            if(acceptType==fileSuffix){
                return true;
            }
        }
        return false;
    }

    var initialized = false;
    // 初始化方法
    function init(){
        if(initialized){
            return;
        }
        renderInputFile();
        bindEventHandlers();
        initialized = true;
    }

    var uploadFile = function(options){
        if(!initialized){init();} // 如果未初始化则初始化
        changeCallback = options.changeCallback||changeCallback;
        acceptTypes = options.acceptTypes||acceptTypes;
        $(container).click();
    };
    return uploadFile;
})(jQuery);


以上是关于简单js fileUpload控件(单例)的主要内容,如果未能解决你的问题,请参考以下文章

js ajaxfileupload.js IE8 上传文件 拒绝访问

jQuery fileupload 多文件上传

bootstrap-fileupload 怎么多文件上传

循环通过 FileUpload 控件上传的 txt 文件行

FileUpload

使用apache的fileupload组件上传文件怎么解决编码问题?