码迷,mamicode.com
首页 > Web开发 > 详细

简单js fileUpload控件(单例)

时间:2016-10-21 16:53:57      阅读:159      评论:0      收藏:0      [点我收藏+]

标签:web   file   javascript   upload   

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控件(单例)

标签:web   file   javascript   upload   

原文地址:http://antlove.blog.51cto.com/10057557/1864250

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!