zhuguifei
2026-03-10 58402bd5e762361363a0f7d7907153c77dbb819f
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
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" dir="ltr">
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8"/>
<link rel="stylesheet" href="../../js/jquery.plupload.queue/css/jquery.plupload.queue.css" type="text/css" media="screen" />
<title>Plupload - Events example</title>
<style type="text/css">
    body {
        font-family:Verdana, Geneva, sans-serif;
        font-size:13px;
        color:#333;
        background:url(../bg.jpg);
    }
</style>
 
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.min.js"></script>
<script type="text/javascript" src="http://bp.yahooapis.com/2.4.21/browserplus-min.js"></script>
 
<script type="text/javascript" src="../../js/plupload.js"></script>
<script type="text/javascript" src="../../js/plupload.gears.js"></script>
<script type="text/javascript" src="../../js/plupload.silverlight.js"></script>
<script type="text/javascript" src="../../js/plupload.flash.js"></script>
<script type="text/javascript" src="../../js/plupload.browserplus.js"></script>
<script type="text/javascript" src="../../js/plupload.html4.js"></script>
<script type="text/javascript" src="../../js/plupload.html5.js"></script>
<script type="text/javascript" src="../../js/jquery.plupload.queue/jquery.plupload.queue.js"></script>
 
</head>
<body>
 
<form method="post" action="dump.php">
    <h1>Events example</h1>
 
    <p>Shows how to bind and use all available events.</p>
 
    <h3>Log messages</h3>
    <textarea id="log" style="width: 100%; height: 150px; font-size: 11px" spellcheck="false" wrap="off"></textarea>
 
    <h3>Queue widget</h3>
    <div id="uploader" style="width: 450px; height: 330px;">Your browser doesn't support upload.</div>
    <a id="clear" href="#">Clear queue</a>
</form>
<script type="text/javascript">
$(function() {
    function log() {
        var str = "";
 
        plupload.each(arguments, function(arg) {
            var row = "";
 
            if (typeof(arg) != "string") {
                plupload.each(arg, function(value, key) {
                    // Convert items in File objects to human readable form
                    if (arg instanceof plupload.File) {
                        // Convert status to human readable
                        switch (value) {
                            case plupload.QUEUED:
                                value = 'QUEUED';
                                break;
 
                            case plupload.UPLOADING:
                                value = 'UPLOADING';
                                break;
 
                            case plupload.FAILED:
                                value = 'FAILED';
                                break;
 
                            case plupload.DONE:
                                value = 'DONE';
                                break;
                        }
                    }
 
                    if (typeof(value) != "function") {
                        row += (row ? ', ': '') + key + '=' + value;
                    }
                });
 
                str += row + " ";
            } else { 
                str += arg + " ";
            }
        });
 
        $('#log').val($('#log').val() + str + "\r\n");
    }
 
    $("#uploader").pluploadQueue({
        // General settings
        runtimes: 'html5,gears,browserplus,silverlight,flash,html4',
        url: '../upload.php',
        max_file_size: '10mb',
        chunk_size: '1mb',
        unique_names: true,
 
        // Resize images on clientside if we can
        resize: {width: 320, height: 240, quality: 90},
 
        // Specify what files to browse for
        filters: [
            {title: "Image files", extensions: "jpg,gif,png"},
            {title: "Zip files", extensions: "zip"}
        ],
 
        // Flash/Silverlight paths
        flash_swf_url: '../../js/plupload.flash.swf',
        silverlight_xap_url: '../../js/plupload.silverlight.xap',
 
        // PreInit events, bound before any internal events
        preinit: {
            Init: function(up, info) {
                log('[Init]', 'Info:', info, 'Features:', up.features);
            },
 
            UploadFile: function(up, file) {
                log('[UploadFile]', file);
 
                // You can override settings before the file is uploaded
                // up.settings.url = 'upload.php?id=' + file.id;
                // up.settings.multipart_params = {param1: 'value1', param2: 'value2'};
            }
        },
 
        // Post init events, bound after the internal events
        init: {
            Refresh: function(up) {
                // Called when upload shim is moved
                log('[Refresh]');
            },
 
            StateChanged: function(up) {
                // Called when the state of the queue is changed
                log('[StateChanged]', up.state == plupload.STARTED ? "STARTED": "STOPPED");
            },
 
            QueueChanged: function(up) {
                // Called when the files in queue are changed by adding/removing files
                log('[QueueChanged]');
            },
 
            UploadProgress: function(up, file) {
                // Called while a file is being uploaded
                log('[UploadProgress]', 'File:', file, "Total:", up.total);
            },
 
            FilesAdded: function(up, files) {
                // Callced when files are added to queue
                log('[FilesAdded]');
 
                plupload.each(files, function(file) {
                    log('  File:', file);
                });
            },
 
            FilesRemoved: function(up, files) {
                // Called when files where removed from queue
                log('[FilesRemoved]');
 
                plupload.each(files, function(file) {
                    log('  File:', file);
                });
            },
 
            FileUploaded: function(up, file, info) {
                // Called when a file has finished uploading
                log('[FileUploaded] File:', file, "Info:", info);
            },
 
            ChunkUploaded: function(up, file, info) {
                // Called when a file chunk has finished uploading
                log('[ChunkUploaded] File:', file, "Info:", info);
            },
 
            Error: function(up, args) {
                // Called when a error has occured
 
                // Handle file specific error and general error
                if (args.file) {
                    log('[error]', args, "File:", args.file);
                } else {
                    log('[error]', args);
                }
            }
        }
    });
 
    $('#log').val('');
    $('#clear').click(function(e) {
        e.preventDefault();
        $("#uploader").pluploadQueue().splice();
    });
});
</script>
</body>
</html>