zoukankan      html  css  js  c++  java
  • JavaScript Ajax上传文件miniupload.js

    用到jquery和layer.js

    (function ($) {
        $.fn.miniupload = function (options, callback) {
            var jqDom = $(this);
            var defaults = {
                type: "POST",
                url: "",
                filetype: ["*"],
                data: {}
            };
            var opts = $.extend(defaults, options);
            var file_type_accept = opts.filetype.join([",."])
            if ($.inArray("*", opts.filetype) == -1) {
                file_type_accept = "." + file_type_accept;
                jqDom.attr("accept", file_type_accept);
            }
    
            jqDom.change(function () {
                for (var i = 0; i < jqDom.prop("files").length; i++) {
                    var form_data = new FormData();
                    var file_data = jqDom.prop("files")[i];
                    if ($.inArray("*", opts.filetype) == -1) {
                        if (check_file_type(file_data["name"]) == -1) {
                            layer.alert("文件格式不正确");
                            break;
                        }
                    }
                    form_data.append("file_name", file_data);
                    for (var key in opts.data) {
                        form_data.append(key, opts.data[key]);
                    }
                    $.ajax({
                        url: opts.url,
                        cache: false,
                        contentType: false,
                        processData: false,
                        async: false,
                        type: "POST",
                        data: form_data,
                        success: function (data) {
                            callback(data);
                            jqDom.val(null);
                        }
                    });
                }
            });
            function check_file_type(file) {
                var extension = file.substr((file.lastIndexOf('.') + 1));
                return $.inArray(extension, opts.filetype);
            }
        };
    })(jQuery)
     一般file标签样式比较难设计,所以可以定义个file 把它隐藏,像下面这样用
    <input type="file" style="display:none" id="upload" />
    <input type="button" onclick="upload()" />
    
    <script>
    $(function(){
      $("#upload").miniupload({url:""},function(data){
      });

    });
    
    funtion upload(){
    $("#upload").trigger("click");
    }
    </script>
  • 相关阅读:
    练习12
    练习11
    练习10(图片题)
    练习9(第九章习题)
    练习8(图片题)
    练习5
    练习4
    对象的赋值与比较
    静态方法
    静态变量
  • 原文地址:https://www.cnblogs.com/betterlife/p/6233717.html
Copyright © 2011-2022 走看看