多单位版国产化地质资料管理系统
zhai
2025-12-18 3c6f6c1e3016e38146a4c46be6e7b625c35591f2
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
//多文件上传 FileUpload 
//前置插件jquery,webuploader(百度上传)
//用法:new FileUpload({...})
//author:guye
//createdate: 2019/1/8
 
(function (global, $, WebUploader, factory) {
    typeof exports == "object" && typeof module != "undefined" ? module.exports = factory() : typeof define === 'function' && define.amd ? define(factory) : (global.FileUpload = factory());
 
})(this, jQuery, WebUploader, function () {
 
    var FileUpload = function (options) { //构造函数
        if (!(this instanceof FileUpload)) {
            console.log("FileUpload 是一个构造函数,应该用new关键字调用");
            return;
        }
 
        //默认配置参数
        var _DEFALUTS_ = {
            serverPath: '', //上传路径
            pick: {
                id: "#picker", //指定选择文件的按钮容器,不指定则不创建按钮。id {Seletor|dom} 指定选择文件的按钮容器,不指定则不创建按钮。注意 这里虽然写的是 id, 但是不是只支持 id, 还支持 class, 或者 dom 节点。
                multiple: true, //是否开起同时选择多个文件能力。
                innerHTML: "", //指定按钮文字。不指定时优先从指定的容器中看是否自带文字。
 
            },
            timeout: 0,
            startUploadBtnId: '#startBtn', //开始上传
            auto: false, // [默认值:false] 设置为 true 后,不需要手动调用上传,有文件选择即开始上传。
            method: 'POST', // {Object} [可选] [默认值:'POST'] 文件上传方式,POST或者GET。
            sendAsBinary: false, // {Object} [可选] [默认值:false] 是否已二进制的流的方式发送文件,这样整个上传内容php://input都为文件内容, 其他参数在$_GET数组中。
            compress: false, //不启用压缩
            resize: false, //不压缩image, 默认如果是jpeg,文件上传前会压缩一把再上传!默认如果是jpeg,文件上传前会压缩一把再上传!
            formData: {}, //上传的自定义参数
            fileSingleSizeLimit: 1024 * 1024 * 1024, //默认单个附件限制1G
            fileSizeLimit: 10 * 1024 * 1024 * 1024, //默认总附件限制10G
            accept: {
                title: 'Files',
                extensions: '*'
            },
 
            uploadSuccess: function (file, response) {
            },
            fileQueued: function (file) {
            },
            beforeAddQueue: function (file) {
            },
            uploadProgress: function (file, percentage) {
            },
            uploadError: function (file, reason) {
            },
            uploadBeforeError: function (file, reason) {
            },
            uploadComplete: function (file) {
            },
            all: function (type) {
                //on还可以用来添加一个特殊事件all, 这样所有的事件触发都会响应到。同时此类callback中的arguments有一个不同处, 就是第一个参数为type,记录当前是什么事件在触发。此类callback的优先级比脚低,会再正常callback执行完后触发。
            }
        }
 
        $.extend(_DEFALUTS_, options || {});
 
        var $btn = $(_DEFALUTS_.startUploadBtnId);
        var state = 'pending';
 
        // 实例化
        var uploader = WebUploader.create({
            // swf文件路径
            swf: 'static/plugins/ptfileupload/Uploader.swf',
 
            // 文件接收服务端。
            server: _DEFALUTS_.serverPath,
 
            // 选择文件的按钮。可选。
            // 内部根据当前运行是创建,可能是input元素,也可能是flash.
            pick: _DEFALUTS_.pick,
            timeout: 0,
            method: _DEFALUTS_.method,
            // 不压缩image, 默认如果是jpeg,文件上传前会压缩一把再上传!
            compress: _DEFALUTS_.compress, //不启用压缩
            resize: _DEFALUTS_.resize,
            formData: _DEFALUTS_.formData,
            fileSingleSizeLimit: _DEFALUTS_.fileSingleSizeLimit,
            fileSizeLimit: _DEFALUTS_.fileSizeLimit,
            accept: _DEFALUTS_.accept,
            auto: _DEFALUTS_.auto,
            sendAsBinary: _DEFALUTS_.sendAsBinary
        });
        uploader.on('beforeFileQueued', function (file) {
            return _DEFALUTS_.beforeAddQueue && _DEFALUTS_.beforeAddQueue(file);
        });
        uploader.on('fileQueued', function (file) {
 
            _DEFALUTS_.fileQueued && _DEFALUTS_.fileQueued(file);
 
        });
        uploader.on('uploadProgress', function (file, percentage) {
            _DEFALUTS_.uploadProgress && _DEFALUTS_.uploadProgress(file, percentage);
 
        });
 
        uploader.on('uploadSuccess', function (file, response) {
            _DEFALUTS_.uploadSuccess && _DEFALUTS_.uploadSuccess(file, response);
 
        });
 
        uploader.on('uploadError', function (file, reason) {
            _DEFALUTS_.uploadError && _DEFALUTS_.uploadError(file, reason);
 
        });
        uploader.on('error', function (type) {
            _DEFALUTS_.uploadBeforeError && _DEFALUTS_.uploadBeforeError(type);
 
        });
        uploader.on('uploadComplete', function (file) {
            _DEFALUTS_.uploadComplete && _DEFALUTS_.uploadComplete(file);
 
        });
        $btn && $btn.on('click', function () {
            if (state === 'uploading') {
                uploader.stop();
            } else {
                uploader.upload();
            }
        });
 
 
    }
 
 
    return FileUpload;
});